0

ソフトウェアのコンパイル済みバージョンをエラー処理するのに役立つコードを書き込もうとしています。データベースへのデータのアップロードを高速化するには、ソフトウェアをコンパイル済みバージョンとしていくつかの異なるPCで実行する必要があります。繰り返しチェックするのではなく、PCの1つでエラーが発生したときに、自分のアドレスに電子メールを送信するスクリプトがあります。

電子メールの中に、エラーが発生したサブとエラー番号があります。ただし、エラーの原因となった行もお願いします。使用してみerrorobject.erlましたが、エラーの位置に関係なく、値がゼロになりました。私はまたerrorobject.source、エラーのより詳細な場所を教えてくれようとしましたが、これはちょうど返されましたmicrosoft.visualbasic、エラーのこのプロパティはより詳細に何かを返すことができますか?

以下は私のコードです:

 Public Sub SendErrorReport(ByVal ErrorObject As Microsoft.VisualBasic.ErrObject, ByVal Routine As String)
    'On Error GoTo Err

    Dim Recipient As String = "email1; email2"

    ' Create an Outlook application.
    Dim oApp As Outlook._Application
    oApp = New Outlook.Application()

    ' Create a new MailItem.
    Dim oMsg As Outlook._MailItem
    oMsg = oApp.CreateItem(Outlook.OlItemType.olMailItem)
    oMsg.Subject = "Notitia software - Error report"
    oMsg.Body = "Error occurred at " & Format(Now.Hour, "00") & ":" & Format(Now.Minute, "00") & " in " & Routine & ". Error no." & Str(ErrorObject.Number) & " - " & ErrorObject.Description & vbCr & vbCr & " - Error Line: " & ErrorObject.erl
    ' TODO: Replace with a valid e-mail address.
    oMsg.To = Recipient

    ' Send
    oMsg.Send()

    ' Clean up
    oApp = Nothing
    oMsg = Nothing

    Exit Sub
Err:
    MsgBox("Error in " & Routine & ". Error no." & Str(ErrorObject.Number) & " - " & ErrorObject.Description)

End Sub

したがって、基本的に、このサブが受信者に送信できるエラーに関する情報を増やす方法を探しています。助けてくれて本当にありがとうございます。

4

1 に答える 1

0

Try Catchの古い VB6/VBA の方法の代わりに使用しon Error GOTOます。例外StackTraceは、必要な情報を提供します。

于 2012-11-06T13:33:26.860 に答える