我决定在我的某个应用程序上打开严格选项。而对于我的生活,我无法弄清楚如何编写一小段代码。在一个模块中,我有这段代码
Sub Main()
AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf CurrentDomain_UnhandledException
End Sub
Private Sub CurrentDomain_UnhandledException(sender As Object, e As UnhandledExceptionEventArgs)
e.ExitApplication = False
End Sub
在环顾四周并看到另一篇关于将它放入ApplicationEvents的帖子后,我通过处理所述事件让它发挥作用。因此出于好奇,我决定将AddHandler移动到同一个类中,然后很明显它的名称相同,但命名空间不同:
Partial Friend Class MyApplication
Private Sub MyApplication_UnhandledException(sender As Object, e As UnhandledExceptionEventArgs) Handles Me.UnhandledException
e.ExitApplication = False
AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf CurrentDomain_UnhandledException
End Sub
Private Sub CurrentDomain_UnhandledException(sender As Object, e As System.UnhandledExceptionEventArgs)
e.ExitApplication = False
End Sub
End Class
以下是两者的链接:
所以我的问题是,我应该使用哪一个?我想阻止应用程序关闭......但这两个选项看起来都像我想要的那样。
答案 0 :(得分:1)
System.UnhandledException
没有ExitApplication
成员(请参阅您链接的文档),因此不能用于停止退出应用程序 - 一旦调用该应用程序,应用程序将始终终止。通常,Microsoft.VisualBasic
命名空间是VB的帮助程序,其他地方可以使用或多或少的重复功能。与您提到的VisualBasic处理程序最接近的等价物是Application.ThreadException
。这个和AppDomain.CurrentDomain.UnhandledException
在MS docs中都得到了很好的描述。
要阻止应用关闭VisualBasic
,可以使用ThreadException
。我过去曾使用Microsoft.VisualBasic
来实现类似于你正在做的事情。