【发布时间】:2011-02-04 03:25:58
【问题描述】:
有没有办法捕捉这些异常? (我不是在寻找“只是在它们周围放置 try/catch 或错误 goto”)。我正在尝试找出这些错误是否可以被它们之外的东西捕获。
Public Class ABC
Shared Sub New()
throw new Exception("Ha!")
End Sub
End Class
或者这个:
Public Class ABC
Dim obj as Object = CreateObject()
Public Function CreateObject()
throw new Exception("Ha!")
End Function
End Class
顺便说一句,将这些放在我的启动类(它是一个 Windows 窗体)中作为“Shared Sub New()”中的第一行不起作用:
AddHandler Application.ThreadException, AddressOf Application_ThreadException
AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf CurrentDomain_UnhandledException
【问题讨论】:
-
在公共场合提及“On Error Goto”是不礼貌的;)不要再这样做了。
-
它们可以在调用堆栈的任何级别被捕获。也许我不明白你在问什么。
-
@Fantius:第一个是在静态构造函数中抛出的,这使它比这更复杂一些。但是第二个可以在你做
new ABC()的任何地方被捕获,因为它被抛出在构造函数中。 -
啊,我没有注意到它是一个静态构造函数。
-
我无法想象为什么您需要在可能引发异常的静态(共享)构造函数中执行某些操作。
标签: .net vb.net exception-handling