【问题标题】:is there a way to pass extra data to MyApplication_UnhandledException event handler?有没有办法将额外的数据传递给 MyApplication_UnhandledException 事件处理程序?
【发布时间】:2012-09-24 21:01:57
【问题描述】:

我正在为非开发人员创建一个设计模式,并且我正在将一个捕获所有错误处理程序与 UnhandledException 事件结合起来。我想将错误写入日志文件,但日志文件名中有时间戳,因此每次运行都会更改。有没有办法让我的处理程序接收或访问日志文件名字符串?

感谢您的帮助

【问题讨论】:

    标签: vb.net design-patterns .net-3.5


    【解决方案1】:

    通常,UnhandledException 事件处理程序位于包含您的启动代码的类中。因此,没有什么可以阻止您在此类中定义一个包含日志文件名称的共享公共变量。您可以在启动时从配置文件中读取它的值。然后在事件内部可以使用该变量打开您的日志文件并写入您的信息

    编辑:在你的场景中你可以试试这个伪代码

    Partial Friend Class MyApplication
    
        ' the name for the log file
        Public logName As String
    
        Private Sub MyApplication_UnhandledException(sender As Object, e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException
            Dim ex As Exception = e.Exception
            If Not ex Is Nothing Then
                MessageBox.Show(ex.Message)
                Using sw = new StreamWriter(My.MyApplication.logName)
                   .....
                End Using
            End If
        End Sub
    End Class
    

    并在您的初始表单中添加此调用以定义 logName

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        My.Application.logName = "C:\temp\text.txt"
        ' as test
        Throw New Exception("This is an unhandled exception")
    End Sub
        End Sub
    

    【讨论】:

    • visual studio 08 想让你把它放在这里 Namespace My Partial Friend Class MyApplication Private Sub MyApplication_UnhandledException(ByVal sender As Object, _ ByVal e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) _ Handles Me.UnhandledException End子结束类结束命名空间
    猜你喜欢
    • 2021-05-30
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    相关资源
    最近更新 更多