gpt4 book ai didi

.net - 当 Sub Main 不可访问时,在 VB.NET 中捕获 ThreadingException

转载 作者:行者123 更新时间:2023-12-04 08:57:05 26 4
gpt4 key购买 nike

我有一个 VB.NET winforms 解决方案,并想添加标准应用程序异常处理程序 - Application.ThreadExceptionAppDomain.CurrentDomain.UnhandledException .

我有以下代码 from MSDN

' Starts the application. '
<SecurityPermission(SecurityAction.Demand, Flags:=SecurityPermissionFlag.ControlAppDomain)> _
Public Shared Sub Main()
' Add the event handler for handling UI thread exceptions to the event. '
AddHandler Application.ThreadException, AddressOf ErrorHandlerForm.Form1_UIThreadException

' Set the unhandled exception mode to force all Windows Forms errors to go through'
' our handler. '
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException)

' Add the event handler for handling non-UI thread exceptions to the event. '
AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf CurrentDomain_UnhandledException

' Runs the application. '
Application.Run(New ErrorHandlerForm())
End Sub

当我无法访问 Sub Main() 时,如何在 VB.NET 中执行此操作方法?

是否启用了我的解决方案属性的“启用应用程序框架”( Sub Main 被隐藏)...

最佳答案

我看到你的问题,我想 - 你似乎缺少一个 Imports代码文件开头的语句。您可以添加所需的 Import或完全限定您正在访问的类型:

Imports System
Imports System.Windows.Forms

Public Shared Sub MyApplicationInitialization()
AddHandler System.Windows.Forms.Application.ThreadException, AddressOf MyThreadExceptionHandler

Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException)

AddHandler System.AppDomain.CurrentDomain.UnhandledException, AddressOf MyUnhandledExceptionHandler
End Sub

从中可以看出, AppDomain住在 System命名空间和 ApplicationSystem.Windows.Forms命名空间。

请注意,您还需要定义自己的事件处理方法,以便在每个 AddressOf 之后指定。 .这些可以布置如下:
Sub MyUnhandledExceptionHandler(ByVal sender As Object, ByVal e As UnhandledExceptionEventArgs)
'your logic here
End Sub

Sub MyThreadExceptionHandler(ByVal sender As Object, ByVal e As ThreadExceptionEventArgs)
'your logic here
End Sub

关于.net - 当 Sub Main 不可访问时,在 VB.NET 中捕获 ThreadingException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5300303/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com