2012-11-05 3 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

해당 정보가있는 System.Exception 대신 Microsoft.VisualBasic.ErrObject를 사용하는 이유가 있습니까? – PatFromCanada

+0

VB6 또는 VBA 코드에서 오류가 생성 되었습니까? – PatFromCanada

+0

vb.net 코드는 내가 아는 한 vb6 및 vba와 다릅니다. 그렇지 않다면 vb6을 기대하고, vb.net v2 프레임 워크에서 비주얼 스튜디오 2005에 글을 쓰고 있습니다. 그 중 어떤 것도 도움이됩니까? system.exception을 살펴보고 문제가 도움이되는지 확인합니다. – Pezzzz

답변

0

on Error GOTO의 이전 VB6/VBA 방식 대신 Try Catch을 사용하십시오. 예외 StackTrace는 필요한 정보를 제공합니다.

관련 문제