2012-11-05 36 views
0

我想編寫一些代碼來幫助我處理我的軟件的編譯版本錯誤。我必須在幾個不同的PC上運行該軟件作爲編譯版本,以加快上傳數據到我的數據庫。當有一臺PC出現錯誤,而不是我必須重複檢查時,我有一個腳本發送一封電子郵件到我的地址。從錯誤對象獲取錯誤的位置

在電子郵件中,我有錯誤發生的子和錯誤號。不過,我也想要導致錯誤的那一行。我嘗試使用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 

所以基本上我正在尋找增加有關錯誤,這個子可以發送給它的收件人信息的方法。非常感謝您的幫助。

+0

是否有你使用Microsoft.VisualBasic.ErrObject而不是System.Exception會有這些信息的原因? – PatFromCanada

+0

從VB6或VBA代碼生成錯誤嗎? – PatFromCanada

+0

vb.net代碼,據我所知是不同於vb6和vba。如果沒有,那麼我期望vb6,我寫在視覺工作室2005年,在vb.net v2框架 - 做任何幫助嗎? 我會看看system.exception,看看是否有助於解決這個問題。 – Pezzzz

回答

0

使用Try Catch而不是舊的VB6/VBA方式on Error GOTO。異常StackTrace會給你你需要的信息。