【发布时间】:2015-08-09 20:58:01
【问题描述】:
您好,我的这个项目遇到了一些问题,这些问题应该是我的“问题”处理程序代码。
Public Event UnhandledException As UnhandledExceptionEventHandler
Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim currentDomain As AppDomain = AppDomain.CurrentDomain
AddHandler currentDomain.UnhandledException, AddressOf MyHandler
End Sub
Sub MyHandler(ByVal sender As Object, ByVal args As UnhandledExceptionEventArgs)
Dim e As Exception = DirectCast(args.ExceptionObject, Exception)
Using sw As New StreamWriter(File.Open(myFilePath, FileMode.Append))
sw.WriteLine(Date.now & e.toString)
End Using
MessageBox.Show("An unexcpected error occured. Application will be terminated.")
Application.Exit()
End Sub
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
Throw New Exception("Dummy Error")
End Sub
我正在尝试全局捕获所有异常并在运行时创建日志文件,这在调试器中运行良好(异常处理和文本文件写入)但在我在安装项目中构建并安装到机器后无法捕获任何未处理的异常.我错过了什么?我是否需要在我的设置项目中包含其他组件?非常感谢您的帮助
【问题讨论】:
-
处理程序是否运行 - 即。如果您将
MessageBox移动到处理程序的第一行,您看到了吗?可能是您在处理程序中遇到错误(例如围绕日志记录?) -
我尝试将 MessageBox 移动到处理程序的第一行,是的,它出现了。我尝试将断点放在处理程序的开头并介入并直接通过处理程序
-
运行应用程序的用户对日志文件的权限是否正常?
-
是的 myFilePath 指向 appdata 本地文件夹
-
OK - 所以如果你将 MessageBox 移动到处理程序的第一行,它会显示在应用程序的构建版本上(即正在调用处理程序)但不会发生日志记录?
标签: vb.net exception exception-handling