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

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()
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 Class End Namespace

最新文章

  1. java 随机生成身份证代码
  2. Centos7搭建java+mysql环境
  3. codeforces——Little Pony and Expected Maximum
  4. Dynamic CRM 2013学习笔记(四十六)简单审批流的实现
  5. 34-Ajax辅助方法
  6. C# ASP.NET基类,常用类库及源代码
  7. MATLAB 实用函数
  8. javascript 比较对象(hashcode)
  9. 记glide框架使用中所遇到的问题
  10. XamlReader动态使用xaml
  11. CSS与JS中的相对路径引用
  12. C语言程序设计第六次作业——循环结构(2)
  13. SPEL表达式
  14. 子元素应该margin-top为何会影响父元素【转】
  15. [转载]SQL中EXISTS的用法
  16. 随机错乱排序(sort的应用)
  17. JavaScript 数组元素排序
  18. View坐标系详解(getTop(),getLeft(),getX(),getY(),getLocationOnScreen(), getLocationInWindow())
  19. 完整的保存onetab的书签信息
  20. ABAP CDS - 字符串函数

热门文章

  1. 原生js实现简单JSONP
  2. Oracle数据库安装与连接与简介
  3. Android 自定义控件——图片剪裁
  4. 如何用npm安装vue
  5. Bzoj2124(p5364): 等差子序列
  6. jmeter录制
  7. ApacheBench 测试性能并使用 GnuPlot 绘制图表
  8. SQLAlchemy小知识点
  9. 新手学python-Day1-鸡汤,变量,编码,进制,判断
  10. js 时间转换