为什么win32异常不被c#异常处理机制所捕获
发布时间:2021-05-23 12:05:56 所属栏目:Windows 来源:网络整理
导读:我有一个 winforms应用程序. Winforms从我们有main()定义的Program.cs开始.我把这个代码放在try-catch块中. [STAThread] static void Main() { try { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application
我有一个 winforms应用程序. Winforms从我们有main()定义的Program.cs开始.我把这个代码放在try-catch块中. [STAThread] static void Main() { try { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new frmSplash()); } catch (Exception ex) { MessageBox.Show(ex.Message); if (ex.InnerException != null) { MessageBox.Show(ex.InnerException.ToString()); } } } 每当有一个win32异常时,这个机制就会失败,抛出异常消息并且应用程序崩溃. 1)为什么win32异常没有被捕获. 2)在最高级别捕获例外是一个很好的做法. 编辑:正如 Pratik指出的,以下答案仅适用于.NET 1.0和.NET 1.1.从.NET 2.0开始,非CLS异常应该被捕获为 RuntimeWrappedException.因为Win32异常不是从.NET Exception类派生的.尝试: try { } catch (Exception ex) { // .NET exception } catch { // native exception } 有关详细信息,请参阅Catch non-CLSCompliant exceptions in general handlers. (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 微软 Win11 原生 设置 将获取重大更新
- 当驱动器作为“通用”设备呈现时,如何监控Windows中的SSD磨
- 安装运行Win11必备,查验电脑支持TPM 2.0有两个简单方法
- 微软 Win11 兼容性检查工具正式版发布 COMING SOON成为下载
- windows-server-2012-r2 – ReFS是否已准备好在Hyper-V 201
- 沒有取得成功卸载掉所有升级处理办法
- 详解shell脚本中关于getopts的使用方法
- 在Windows11中为任何文件 文件夹和网页创建桌面快捷方式
- windows-server-2008 – 在Active Directory中禁用密码复杂
- windows – svchost.exe上的细粒度性能报告
站长推荐
热点阅读