.net 异常捕获块

2024-01-03

以下 catch 块有什么区别?

try
{
    ...
}
catch
{
    ...
}

and

try
{
    ...
}
catch(Exception)
{
    ...
}

我意识到,在任何一种情况下,异常实例都不可用,但是我可以用一个实例做一些其他实例做不到的事情吗?


他们是almost相同。

来自 C# 语言规范,第 8.10 节:

某些编程语言可能支持不能表示为从 System.Exception 派生的对象的异常,尽管 C# 代码永远无法生成此类异常。通用的 catch 子句可用于捕获此类异常。因此,一般的 catch 子句在语义上与指定 System.Exception 类型的子句不同,因为前者还可以捕获来自其他语言的异常。

请注意,虽然 C# 区分了两者,但它们实际上与 .NET 2.0 相同,如这个博客 http://blogs.msdn.com/b/jmanning/archive/2005/09/16/469091.aspx:

感谢 2.0 CLR 最近的更改,如果您的代码决定在某个地方抛出一个 int (System.Int32),CLR 现在将用 RuntimeWrappedException 来包装它,并且编译器已更新为您提供该信息警告上面的第二个子句现在是死代码

warning CS1058: A previous catch clause already catches all exceptions. All non-exceptions thrown will be wrapped in a System.Runtime.CompilerServices.RuntimeWrappedException

对于 CLR 如何知道为您的程序集执行此操作,您会注意到编译器现在向您的程序集添加一个 RuntimeCompatibilityAttribute 告诉它:
.custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = {property bool 'WrapNonExceptionThrows' = bool(true)}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.net 异常捕获块 的相关文章

  • 如何引用 .net 可执行文件中的类?

    IL 反汇编程序显示了我想在项目中使用的 Net 可执行文件中的类 我如何使用我自己项目中的这些类 从 Visual Studio 上的项目添加对该可执行文件的引用 您应该有权访问它定义的公共类 可执行文件是一个像任何其他程序集一样的程序集
  • 不同文件中的相同静态变量[重复]

    这个问题在这里已经有答案了 HI 欢迎大家回答这个问题 Q1 如果 File1 c 包含 static int a File2 c 包含 static int a 如果这两个文件是同一项目的一部分 如果是的话 编译会抛出任何错误吗 如果它不
  • 为什么我需要显式编写“auto”关键字?

    我正在从 C 98 转向 C 11 并且已经熟悉了auto关键词 我想知道为什么我们需要明确声明auto编译器是否能够自动推导类型 我知道 C 是一种强类型语言 这是一条规则 但如果不显式声明变量就不可能实现相同的结果auto 放弃显式的a
  • JQuery、ASCX 和 webmethods 似乎不起作用

    我有一个级联下拉列表 其中 3 个 类型 类别和子类别 首先类型负载 然后选择类型 类别负载以及选择类别 子类别负载 我还有 2 个按钮 添加类别 和 添加子类别 单击这些按钮后 我调用 JQuery 模态表单来添加它们 我在代码后面使用
  • ScrollableControl 在整个控件周围绘制边框

    我正在构建基于的自定义用户控件ScrollableControl 现在我正在尝试在控件周围添加边框 类似于 DataGridView 的边框 我可以使用以下方法绘制边框 e Graphics TranslateTransform AutoS
  • 不要覆盖 Azure Blob 存储

    我有一种将文件添加到 Azure Blob 存储的方法 问题是我试图指定一个条件 在该条件下它不会覆盖 blob 而只是添加到其中 我正在尝试使用参数访问条件 但是 VS 说这个方法不能采用两个参数 async void archiveNe
  • 有什么办法可以让这个 C# 代码更快吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在读取一个大文件 X12 并解析其中的信息 我有两个瓶颈功能 我似乎无法解决 read line 和 get element 有什
  • 从 C# 访问 COM vtable

    C 中有没有办法访问 COM 对象的虚拟方法表以获取函数的地址 经过大量搜索和拼凑不同的部分解决方案后 我弄清楚了如何做到这一点 首先 您需要为您尝试访问的对象定义 COM 组件类 ComImport Guid InterfaceType
  • C#:如何确定坐标是否在美国大陆?

    我正在获取坐标 纬度 经度 我想检查这些坐标是否位于美国大陆 有没有一种简单的方法可以在 C 中实现 我可以将坐标转换为 MGRS 或 UTM 谢谢 哇哦 他们专门为你准备了 http econym org uk gmap states x
  • 使用标准范围连接带有分隔符的字符串范围

    我想使用范围将跨度中包含的四个字节转换为字符串 这是输入和输出的示例 std span
  • 不使用 DAO 压缩 Microsoft Access 数据库

    我用CDatabase类开一个ACCDB访问数据库 司机是 T Microsoft Access Driver mdb accdb 我可以打开并使用数据库 已经这样做很多年了 if DatabaseExist m strMDBPath AJ
  • 检查字符串中是否存在所有字符值

    我目前正在做这项任务 但我被困住了 目标是读取文件并查找文件中的字符串中是否存在这些字符值 我必须将文件中的字符串与作为参数放入的另一个字符串进行比较 但是 只要每个字符值位于文件中的字符串中 那么它就 匹配 示例 输入和输出 a out
  • 如何声明返回相同类型的 Func Delegate 的 Func Delegate?

    我想编写一个方法 该方法可以完成一些工作 并最终返回另一个与原始方法具有相同签名的方法 这个想法是根据前一个字节值顺序处理字节流 而不进行递归 通过这样调用它 MyDelegate executeMethod handleFirstByte
  • 通用 lambda 的数量

    可以通过访问非泛型 lambda 的数量来推断其数量operator template
  • 在 Windows 上构建 MLT 框架时出错

    我一直在遵循官方提供的构建指南here http www mltframework org bin view MLT WindowsBuild 我需要 MLT 来创建视频播放器 并且我选择仅安装前 4 个库 如指南中所述 FFmpeg SD
  • 我们可以向 ServicePointManager.SecurityProtocol 添加四个协议吗?

    我想支持从 ssl3 到 tls 1 2 的所有安全协议 但是在网上搜索时我发现代码为 ServicePointManager SecurityProtocol SecurityProtocolType Ssl3 SecurityProto
  • 如何使用 C# 以编程方式识别对方法的引用数量

    我最近继承了需要一些修剪和清理的 C 控制台应用程序 长话短说 该应用程序由一个包含超过 110 000 行代码的类组成 是的 单个类中有超过 110 000 行 当然 该应用程序是我们业务的核心 全天候运行更新动态网站上使用的数据 尽管我
  • 通过 C++ 标头在 C++ 和 C# 中使用枚举

    我有一个用 C 编写的服务器 位于命名管道的末端 嗯 提供服务 可以发送到服务器的命令在位于头文件中的枚举中定义 enum e doThing1 e doThing2 e doLastThing 所需枚举的值被放入发送到服务器的消息的第一个
  • WPF - 将窗口置于前面

    我有一个 WPF 窗口 我没有关闭它 相反 我执行 Hide 和 Show 它 现在 当我双击记录上网格中的主窗口时 这将触发 Show 窗口 该窗口将始终显示在主窗口后面 我尝试过以下方法 但没有成功 view Show view Act
  • System.IO.IOException:进程无法访问文件“.txt”,因为它正在被另一个进程使用

    我正在使用下一个代码来记录 Web 应用程序的错误 using StreamWriter myStream new StreamWriter sLogFilePath true myStream WriteLine string Forma

随机推荐

  • Log4j2 自定义布局模式

    您好 我正在从 log4j 迁移到 log4j2 在我的代码中 我发现使用了一些自定义模式类 我不确定如何在 log4j2 中实现相同的功能 有人能帮我解决这个问题吗 这是我正在使用的代码 public class MyPatternLay
  • 使用 Metal 对 SceneKit 渲染进行抗锯齿处理

    我是金属新手 我正在使用 Metal 渲染 SceneKit 场景这个苹果示例代码 https developer apple com documentation avfoundation media playback and select
  • swrl 规则推断 dataProperty 值

    我正在尝试测试一个简单的 SWRL 规则 我的本体中有三个类 LivingPlace 它有两个子类 RuralArea 和 City LivingPlace 是 dataProperty hasHospital 的域 其范围为布尔值 当我使
  • SQL/Postgres 日期时间划分/规范化

    我有这个活动表 Field Type id int 11 unsigned start date timestamp end date timestamp 我需要一个按开始日期按天对这些活动进行分组的视图 但这样的话 如果结束日期与开始日期
  • 如何从静态库获取版本号?

    我有一个链接到 iOS 应用程序的库的 a 文件 我如何知道库的版本号 我不需要以编程方式执行此操作 我只需要手动获取一次 关于如何将版本号编码到静态库中没有共同的主题 有时根本不存在 有时 这是使用属于该库的标头来完成的 有时 它是使用返
  • 如何在 Ajax 监听器中获取 SelectBooleanCheckbox 的状态?

    我试图根据复选框的状态在 ManagedBean 中执行一些操作 复选框在这里
  • 使用 OnClickListener() 是策略模式的示例吗?

    Is 单击监听器 https developer android com reference android view View OnClickListener在android中策略模式的例子 在另一个 Stackoverflow 中que
  • MVC 在回发时选择带有模型的列表,如何?

    我正在尝试使用 MVC 3 创建一个需要 2 个下拉列表的视图 在我唯一的其他 MVC 应用程序中 我们使用 Telerik 控件 该控件使用 Ajax 方法来填充数据 现在在这个项目中我们不使用第三方控件 所以我将使用 MVCSelect
  • 在 AngularJS 动态电子邮件验证元素中,当我填写电子邮件检查元素时,它会被重置

    这是 Angular JS 中的电子邮件检查元素代码几乎没问题 但这有一个问题 当我填写电子邮件检查元素时 它被重置 例子 我将其写入电子邮件检查元素 电子邮件受保护 cdn cgi l email protection 但这是重置 当我写
  • Symfony2加载条件配置

    我刚刚开始使用 Symfony2 所以我还是个菜鸟 我需要根据请求 uri 或特定路由加载配置文件 yml E G dynamicroute 应该加载dynamicroute yml and anotherdynamicroute 应该加载
  • 如何恢复中断的下载

    我正在尝试从我的 Yahoo 下载一个大文件 网站服务器显然是设置的 不是我设置的 如果下载未在 100 秒内完成 则会断开下载 文件足够小 通常可以成功传输 当数据速率较慢且下载断开时 是否有办法在发生断开的文件偏移处恢复 URLConn
  • 识别导致回发的控制

    我有一个在下拉列表选择上回发的页面 使用 AJAX 更新面板 根据下拉选择 页面上的其余 UI 是动态生成的 动态 UI 在页面加载时绘制 用于获取值Submit按钮点击 我面临的问题是 在下拉列表更改时 似乎会发生两次回发 一个绘制原始
  • 根据 pandas 数据框中的其他分类值填充分类值的缺失值

    我想用另一个类别中最常见的值填充 Pandas 数据框中分类值的缺失值 例如 import pandas as pd import numpy as np data type softdrink juice softdrink softdr
  • 使 p:calendar 只读

    我要实现
  • 选择所有数据包括另一个表,即使为空

    设置 1 员工表 employeeID firstName lastName 1 鞋子表 shouldD Employee员工ID shoeName shoeColor shoe Brand 我想选择 Employee 表中的所有行 即使鞋
  • R 中用于超大型数据集处理和机器学习的推荐包 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 看起来 R 确实是为处理可以完全拉入内存的数据集而设计的 建议使用哪些 R 包来对无法拉入内存的超大型数
  • java 扫描仪仅读取前 2048 个字节

    我使用 java util Scanner 使用以下代码从类路径读取文件内容 String path1 getClass getResource myfile html getFile System out println new File
  • Delphi 和单元中的最终确定

    我有两个单位unitS和unit 类 TFoo 在单元中声明 在完成unitS时调用B Free总是安全的吗 它如何取决于 dpr 中的unitS和unit的顺序 当执行unitA终结时 我可以确定unitB存在吗 unit unitB i
  • 构造函数中的对象参数

    首先 如果我的问题难以理解 我深表歉意 我很难准确地解释我需要帮助的内容 我对 Java 和按引用传递等概念很陌生 基本上 我需要知道为什么下面的代码不正确 如何告诉 Java 使用作为构造函数参数传入的对象的方法 再次致歉 感谢您的阅读
  • .net 异常捕获块

    以下 catch 块有什么区别 try catch and try catch Exception 我意识到 在任何一种情况下 异常实例都不可用 但是我可以用一个实例做一些其他实例做不到的事情吗 他们是almost相同 来自 C 语言规范