VB.net 捕获项目全局异常

VB.net 捕获项目全局异常,第1张

概述在项目中添加如下代码:新建窗口来显示异常信息。 Namespace My ‘全局错误处理,新的解决方案直接添加本ApplicationEvents.vb 到工程即可 ‘添加后还需要一个From用来显示错误。如果到这步还不会则需要先打好基础啦 ‘======================================================== ‘以下事件

在项目中添加如下代码:新建窗口来显示异常信息。

namespace My    全局错误处理,新的解决方案直接添加本ApplicationEvents.vb 到工程即可    添加后还需要一个From用来显示错误。如果到这步还不会则需要先打好基础啦    ========================================================    以下事件可用于MyApplication:     启动:应用程序启动时,在创建启动窗体之前引发。     关闭:所有申请表格关闭后提出。 如果应用程序异常终止,则不会引发此事件。     UnhandledException:如果应用程序遇到未处理的异常,则引发。     StartupNextInstance:当启动单实例应用程序并且应用程序已经处于活动状态时引发。     NetworkAvailabilityChanged:当网络连接连接或断开连接时引发。    Partial FrIEnd Class MyApplication        我们捕捉到的全局例外之一是不是线程安全的,所以我们需要首先使其线程安全。        Private Delegate Sub SafeApplicationThreadException(ByVal sender As Object,ByVal e As Threading.ThreadExceptionEventArgs)        Private Sub ShowDeBUGOutput(ByVal ex As Exception)            显示输出错误的From窗体            Dim frmD As New Form2()            显示解决方案名            frmD.TextBox1.AppendText("Product name:" & My.Application.Info.Productname & vbNewline)            显示当前版本号            frmD.TextBox1.AppendText("Product Version:" & My.Application.Info.Version.ToString() & vbNewline)            frmD.TextBox1.AppendText("OS name:" & My.Computer.Info.OSFullname & vbNewline)            frmD.TextBox1.AppendText("OS Version:" & My.Computer.Info.Osversion & vbNewline)            NET2.0下判断x86还是64            If Environment.GetEnvironmentvariable("Programfiles(x86)") = "" Then                frmD.TextBox1.AppendText("OS Platform:x86" & vbNewline)            Else                frmD.TextBox1.AppendText("OS Platform:x64" & vbNewline)            End If            frmD.TextBox1.AppendText("--------------------" & vbCrLf)            显示错误            frmD.TextBox1.AppendText(ex.ToString())            frmD.ShowDialog()            执行应用程序清理            Todo: 在这里添加您的应用程序清理代码。            退出应用程序 - 或尝试从异常中恢复:            Environment.Exit(0)        End Sub        Private Sub MyApplication_Startup(ByVal sender As Object,ByVal e As Microsoft.VisualBasic.applicationservices.StartupEventArgs) Handles Me.Startup             有三个地方可以捕获所有全球未处理的异常:             AppDomain.CurrentDomain.UnhandledException event。             System.windows.Forms.Application.ThreadException事件。             MyApplication.UnhandledException事件。            AddHandler AppDomain.CurrentDomain.UnhandledException,AddressOf AppDomain_UnhandledException            AddHandler System.windows.Forms.Application.ThreadException,AddressOf app_ThreadException        End Sub        Private Sub app_ThreadException(ByVal sender As Object,ByVal e As Threading.ThreadExceptionEventArgs)            这不是线程安全的,所以使其线程安全。            If MainForm.Invokerequired Then                调用主线程                MainForm.Invoke(New SafeApplicationThreadException(AddressOf app_ThreadException),New Object() {sender,e})            Else                ShowDeBUGOutput(e.Exception)            End If        End Sub        Private Sub AppDomain_UnhandledException(ByVal sender As Object,ByVal e As UnhandledExceptionEventArgs)            ShowDeBUGOutput(DirectCast(e.ExceptionObject,Exception))        End Sub        Private Sub MyApplication_UnhandledException(sender As Object,e As Microsoft.VisualBasic.applicationservices.UnhandledExceptionEventArgs) Handles Me.UnhandledException            ShowDeBUGOutput(e.Exception)        End Sub    End ClassEnd namespace
总结

以上是内存溢出为你收集整理的VB.net 捕获项目全局异常全部内容,希望文章能够帮你解决VB.net 捕获项目全局异常所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1253219.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存