首页 / 知识
关于.NET 1.1中的c#:未处理的异常处理程序
2023-04-11 14:20:00

Unhandled Exception Handler in .NET 1.1我正在维护.NET 1.1应用程序,因此我要承担的任务之一就是确保用户不会看到任何不友好的错误通知。 我在 Jeff在这里和这里的博客上谈论了这个问题。但是没有解决方案。那么.NET 1.1中处理未捕获的异常并显示友好对话框的标准方法是什么? Jeff的回答被标记为正确答案,因为他提供的链接包含有关如何执行所需操作的最完整信息。 哦,在Windows窗体中,您绝对应该能够使它工作。您唯一需要注意的是事情发生在不同的线程上。 我在这里有一份旧的Code Project文章,该文章应该会有所帮助: 用户友好的异常处理 .NET 1.x Windows Forms应用程序中未处理的异常行为取决于:
未处理异常的默认行为是:
未处理的异常的联系点为:
Windows窗体内置的异常处理默认情况下执行以下操作:
您可以通过在
请注意HKEY_LOCAL_MACHINE \\\\\\\\ Software.NetFramework下的注册表设置DbgJitDebugLaunchSetting。这是我知道的三个值之一:
在Visual Studio中,转到菜单工具a?’选项a?’调试a?’JIT将此键设置为0或2。但是,在最终用户的计算机上,通常最好设置为1。请注意,此注册表项在CLR未处理的异常事件发生之前起作用。 最后一个事件是您记录未处理的异常的最后机会。它是在您的Final代码块执行之前触发的。您可以按以下方式拦截此事件:
AppDomain.UnhandledException是事件,而不是全局异常处理程序。这意味着,到它被提出时,您的应用程序已经不堪重负了,除了进行清理和错误日志记录之外,您无能为力。 幕后发生的事情是:框架检测到异常,将调用堆栈移到最顶端,没有找到可以从错误中恢复的处理程序,因此无法确定继续执行是否安全。因此,出于对您的礼貌,它启动了关闭序列并触发了此事件,因此您可以对已经结束的过程表示敬意。如果在主线程中未处理异常,则会发生这种情况。 没有针对这种错误的单点解决方案。您需要在发生此错误的所有位置的上游放置一个真正的异常处理程序(捕获块),然后将其转发到(例如)全局处理程序方法/类,该方法/类将根据以下情况确定是否可以安全地进行报告和继续操作:异常类型和/或内容。 编辑:可以禁用(= hack)Windows内置的错误报告机制,这样当您的应用程序关闭时,不会显示强制性的"崩溃和刻录"对话框。但是,这对系统中的所有应用程序都有效,而不仅仅是您自己的应用程序。 这是控制台应用程序还是Windows Forms应用程序?如果它是.NET 1.1控制台应用程序,则可悲的是,这是设计使然-由MSFT开发人员在您引用的第二篇博客文章中进行了确认:
听起来.NET 2.0做得更好(感谢天作之功),但是说实话,我从来没有时间回过头来检查。 这是Windows窗体应用程序。被Application.ThreadException捕获的异常工作正常,而且我没有收到难看的.NET异常框(OK终止,Cancel调试?谁提出了该??)。 我遇到了一些未被该异常捕获的异常,并最终导致了引起问题的AppDomain.UnhandledException事件。我想我已经捕获了大多数此类异常,并且现在正在我们的漂亮错误框中显示它们。 因此,我只希望没有其他情况会导致Application.ThreadException处理程序无法捕获异常。 |
最新内容
相关内容
python错误类型有哪些
python错误类型有哪些,异常,系统,培训,错误,代码,标准,检测,类型,程序,逻辑,python的错误有语法错误和逻辑错误语法错误程序执行过程中,pythonpython怎样忽略warning警告错误?
python怎样忽略warning警告错误?,培训,情况,代码,错误,模块,下面,之前,以上,程序,更多,python开发中经常遇到报错的情况,但是warning通常并不python如何获取用户输入
python如何获取用户输入,培训,字符串,整数,类型,文本,文档,用户,小数点,位数,以上,python整数输入#!/usr/bin/python3usr_ip=input("EnteraniPhone Web应用程序,模板,框架?
iPhone Web应用程序,模板,框架?,iPhone Web应用程序,模板,框架?,应用程序,站点,用于,网页,iPhone web applications, templates, framework关于体系结构:我应该如何构建Java应
关于体系结构:我应该如何构建Java应用程序,将类放在哪里?,关于体系结构:我应该如何构建Java应用程序,将类放在哪里?,应用程序,支持,困惑,在Web应用程序上执行压力测试?
在Web应用程序上执行压力测试?,在Web应用程序上执行压力测试?,应用程序,主页,写了,简单,Performing a Stress Test on Web Application我应该如何将文件加载到Java应用程
我应该如何将文件加载到Java应用程序中?,我应该如何将文件加载到Java应用程序中?,文件,应用程序,加载,文本,How should I load files i关于身份验证:我应该使用用户名还是
关于身份验证:我应该使用用户名还是用户ID来引用ASP.NET中经过身份验证的用户,关于身份验证:我应该使用用户名还是用户ID来引用ASP.N关于国际化:ASP.NET MVC应用程序中
关于国际化:ASP.NET MVC应用程序中的多种语言?,关于国际化:ASP.NET MVC应用程序中的多种语言?,应用程序,语言,接口,支持,Multiple langua关于Visual Studio:部署VB.NET应用
关于Visual Studio:部署VB.NET应用程序的最佳方法是什么?,关于Visual Studio:部署VB.NET应用程序的最佳方法是什么?,也有,我不,当我,但内置用户配置文件与旧式用户类/表
内置用户配置文件与旧式用户类/表的ASP.NET,内置用户配置文件与旧式用户类/表的ASP.NET,最佳实践,配置文件,应将,寻找,ASP.NET built如何使用纯HTTP身份验证和PHP在Apa
如何使用纯HTTP身份验证和PHP在Apache下获取经过身份验证的用户名?,如何使用纯HTTP身份验证和PHP在Apache下获取经过身份验证的用户