繁体   English   中英

为方法抛出的所有异常生成代码

[英]Generate code for all exceptions thrown by a method

您是否知道是否有任何选项或扩展来生成捕获Visual Studio中方法抛出的所有异常所需的代码?

例如,我正在调用File.WriteAllBytes(...)

该方法可以抛出9个Exceptions:System.ArgumentException,System.ArgumentNullException等等。

我想要所有9个例外的代码:

catch (ArgumentException) {

}
catch (ArgumentNullException) {

}
...

我在Eclipse for Java中看到过这种行为,但我想知道Visual Studio中是否有类似的东西。

顺便说一下,我正在使用Visual Studio 2012 Premium

在Visual Studio中没有这样的东西。

主要问题是,与Java不同,C#不支持throws子句。 因此,没有办法直接知道方法会引发什么可能的异常。 该工具是围绕语言功能构建的,C#中不存在该功能。

Anders Hejlsberg 在本次采访中详细讨论了这一决定

话虽如此,在C#中,您通常不希望明确捕获所有这些异常。 您应该只捕获可以正确处理的异常。 如果要捕获所有用于记录puroses的异常,只需在任何特定异常类型之后使用单个catch (Exception e) ,它将捕获所有其他异常。

C#不是Java。 您不仅不需要捕获方法抛出的所有异常,这也是一个非常糟糕的主意。

您应该只捕获需要处理的异常。 如果您没有特别需要为特定异常做什么,那么让它冒泡到您的调用者,这可能有它需要做的事情。 或者它可能不会。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM