c# – 无法捕获Winforms中的未处理异常
发布时间:2020-12-15 17:26:32 所属栏目:百科 来源:网络整理
导读:我正在尝试捕获C# Windows窗体应用程序中的所有未经处理的异常.我已将以下代码添加到Program.cs文件中,但未捕获异常,我得到NullReferenceException等异常. 我究竟做错了什么? static void Main(){ System.Windows.Forms.Application.SetUnhandledExceptionM
我正在尝试捕获C#
Windows窗体应用程序中的所有未经处理的异常.我已将以下代码添加到Program.cs文件中,但未捕获异常,我得到NullReferenceException等异常.
我究竟做错了什么? static void Main() { System.Windows.Forms.Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); System.Windows.Forms.Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(OnGuiUnhandedException); AppDomain.CurrentDomain.UnhandledException += OnUnhandledException; var form = new MainForm(); form.ShowDialog(); } private static void HandleUnhandledException(Object o) { // TODO: Log it! Exception e = o as Exception; if (e != null) { } } private static void OnUnhandledException(Object sender,UnhandledExceptionEventArgs e) { HandleUnhandledException(e.ExceptionObject); } private static void OnGuiUnhandedException(object sender,System.Threading.ThreadExceptionEventArgs e) { HandleUnhandledException(e.Exception); } 编辑:我能够在Visual Studio外部运行程序时捕获异常,但是当从visual studio进行调试时我无法捕获Exception.我知道调试是为了删除错误.我应该在构建模式下运行程序来捕获异常? 解决方法
尝试在VS中禁用异常捕获,因为它似乎在它到达处理程序之前捕获异常.
调试>例外……>取消选中用户未处理的公共语言运行时异常. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |