全球例外处理它控制
-
08-06-2019 - |
题
工作时ASP.NET 1.1项目,我总是用的全球性的。asax抓住所有的错误。我在寻找一个类似的方式来捕捉所有的例外情况,在一个窗户的形式用户的控制,它结束是一个主办即控制。什么是适当的方式去做这样的事情?
解决方案
你需要处理的 System.Windows.Forms.Application.ThreadException
事件适用于Windows的形式。这篇文章真的帮了我 http://bytes.com/forum/thread236199.html.
其他提示
目前在我它的应用程序,我已经处理程序 Application.ThreadException
, 如上所述,但是也 AppDomain.CurrentDomain.UnhandledException
大多数例外情况到达通过 ThreadException
处理,但是程序域之一也抓了几个在我的经验
如果你使用VB.NET你可以进入的非常方便ApplicationEvents.vb。这个文件是免费用VB.NET 它项目,并包含一个处理方法 未经处理的例外情况.
得到这个漂亮的文件,它是"的项目属性>>的应用程序>>的应用程序的事件"
如果你不使用VB.NET然后是啊,这是处理 应用程序。ThreadException.
处理异常的全球...
Windows的应用
系统。窗户。形式。应用程序。ThreadException事件
通常使用的主要方法。请参阅 MSDN线异常
Asp.Net
系统。网。HttpApplication.错误的事件
通常用在全球性的。asax文件。请参阅 MSDN全球性的。asax全球处理程序
控制台应用程序
系统。程序域.UnhandledException事件
通常使用的主要方法。请参阅 MSDN UnhandledException
Sub Main()
Dim currentDomain As AppDomain = AppDomain.CurrentDomain
AddHandler currentDomain.UnhandledException, AddressOf MyHandler
Try
Throw New Exception("1")
Catch e As Exception
Console.WriteLine("Catch clause caught : " + e.Message)
Console.WriteLine()
End Try
Throw New Exception("2")
End Sub
Sub MyHandler(sender As Object, args As UnhandledExceptionEventArgs)
Dim e As Exception = DirectCast(args.ExceptionObject, Exception)
Console.WriteLine("MyHandler caught : " + e.Message)
Console.WriteLine("Runtime terminating: {0}", args.IsTerminating)
End Sub