Vb.net 如果出现未处理的异常,请运行进程

Vb.net 如果出现未处理的异常,请运行进程,vb.net,Vb.net,如果发生任何未处理的异常,我需要运行一个进程 那么,在这种情况下,有没有一种方法可以捕获应用程序中的所有异常并创建一个进程 更新(Tim):这是一个单表单VB.NET应用程序,有几个函数,每个函数每次都会出于不同的原因引发异常,因此我无法找到解决方案,只能在该表单或应用程序上全局执行此操作(对于WinForms)您需要订阅ThreadException事件(您可以通过“Main”方法执行此操作): OnThreadException的签名为: Sub OnThreadException(ByVa

如果发生任何未处理的异常,我需要运行一个进程

那么,在这种情况下,有没有一种方法可以捕获应用程序中的所有异常并创建一个进程

更新(Tim):这是一个单表单VB.NET应用程序,有几个函数,每个函数每次都会出于不同的原因引发异常,因此我无法找到解决方案,只能在该表单或应用程序上全局执行此操作(对于WinForms)您需要订阅ThreadException事件(您可以通过“Main”方法执行此操作):

OnThreadException的签名为:

Sub OnThreadException(ByVal sender As Object, ByVal t As System.Threading.ThreadExceptionEventArgs

什么样的申请?WinForm?ASP.NET?您应该能够创建一个全局异常处理程序,但具体细节因应用程序而异。或者,您是否希望捕获应用程序范围之外的未处理异常?这是一个完全不同的情况。请检查更新的问题。如果你不介意,请你解释一下,但更多如何订阅部分。关于Sub,我应该将其放在表单中还是其他地方?您需要在项目设置中禁用“激活应用程序框架”。然后创建一个新模块,并在其中放入一个
Sub-Main()
。选择此子项作为项目的起始子项,然后从该子项运行应用程序。要订阅,您只需指定一个方法(我使用了“OnThreadException”,但您可以调用它任何名称),该方法将在事件(System.Windows.Forms.application.ThreadException)发生时调用。您可以将该方法放在任何您想要的地方-您可能想要为其创建一个类,然后实例化该类并传递实例的方法-例如,Dim myInstance As New UnexpectedExceptions&AddHandler Application.ThreadException,AddressOf myInstance.OnThreadException。@Jens:您不需要禁用VB应用程序框架,只要在主窗体启动时将AddHandler放在某个地方就行了。是的,我回答了他关于Sub main()的后续问题
Sub OnThreadException(ByVal sender As Object, ByVal t As System.Threading.ThreadExceptionEventArgs