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

标签 c# .net visual-studio visual-studio-2012 exception-handling

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

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

该方法可以抛出 9 个异常:System.ArgumentException、System.ArgumentNullException 等。

我想要所有 9 个异常的代码:

catch (ArgumentException) {

}
catch (ArgumentNullException) {

}
...

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

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

最佳答案

Visual Studio 中没有这样的东西。

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

安德斯海尔斯伯格 discusses this decision in detail in this interview .

也就是说,在 C# 中,您通常不想显式捕获所有这些异常。您应该只捕获可以正确处理的异常。如果您想捕获所有异常以用于记录目的,只需在任何特定异常类型之后使用单个 catch (Exception e),它将捕获所有其他异常。

关于c# - 为方法抛出的所有异常生成代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19302414/

相关文章:

c# - 在 starUML 中选择多个项目或对象(使用 ctrl + 鼠标左键单击)

c# - ASP.NET Repeater - 在 HeaderTemplate 中显示数据绑定(bind)

.net - WCF WebService - 有没有办法确定客户端收到响应?

git - Visual Studio 2017 中 cherry-pick 提交方法的区别

visual-studio - 如何防止 Visual Studio 在我的源目录中创建 obj 文件夹?

c# - Visual Studio : Can't load 2 versions of Json. NET 和使用别名

c# - base64 编码 HttpPostedFileBase

c# - Asp.net c# - 检查文件是否存在失败

c# - HTML Agility Pack 查找以以下开头的 ID

javascript - 无法安装 Microsoft.Preview.WindowsAzure.ActiveDirectory.Authentication 目标 NETCore,版本 = v4.5