다음을 통해 공유


방법: Visual Basic에서 예외 기록

My.Application.LogMy.Log 개체를 사용하여 애플리케이션에서 발생하는 예외에 대한 정보를 기록할 수 있습니다. 다음 예제는 My.Application.Log.WriteException 메서드를 사용하여 명시적으로 잡은 예외와 처리되지 않은 예외를 기록하는 방법을 보여 줍니다.

추적 정보를 로깅하려면 이 메서드를 My.Application.Log.WriteEntry 사용합니다. 자세한 내용은 WriteEntry를 참조하세요.

처리된 예외를 기록하려면

  1. 예외 정보를 생성할 메서드를 만듭니다.

    Public Sub ExceptionLogTest(ByVal fileName As String)
    End Sub
    
  2. Try...Catch 블록을 사용하여 예외를 잡습니다.

    Try
    Catch ex As Exception
    End Try
    
  3. 블록에 예외를 생성할 수 있는 코드를 넣습니다 Try .

    DimMsgBox 줄의 주석을 해제하여 NullReferenceException 예외를 발생시키십시오.

    ' Code that might generate an exception goes here.
    ' For example:
    '    Dim x As Object
    '    MsgBox(x.ToString)
    
  4. 블록에서 Catch 메서드를 My.Application.Log.WriteException 사용하여 예외 정보를 작성합니다.

    My.Application.Log.WriteException(ex,
        TraceEventType.Error,
        "Exception in ExceptionLogTest " &
        "with argument " & fileName & ".")
    

    다음 예제에서는 처리된 예외를 로깅하기 위한 전체 코드를 보여 줍니다.

    Public Sub ExceptionLogTest(ByVal fileName As String)
        Try
            ' Code that might generate an exception goes here.
            ' For example:
            '    Dim x As Object
            '    MsgBox(x.ToString)
        Catch ex As Exception
            My.Application.Log.WriteException(ex,
                TraceEventType.Error,
                "Exception in ExceptionLogTest " &
                "with argument " & fileName & ".")
        End Try
    End Sub
    

처리되지 않은 예외를 기록하려면

  1. 솔루션 탐색기에서 프로젝트를 선택해야 합니다. 프로젝트 메뉴에서 속성을 선택합니다.

  2. 애플리케이션 탭을 클릭합니다.

  3. 애플리케이션 이벤트 보기 단추를 클릭하여 코드 편집기를 엽니다.

    그러면 ApplicationEvents.vb 파일이 열립니다.

  4. 코드 편집기에서 ApplicationEvents.vb 파일을 엽니다. 일반 메뉴에서 MyApplication 이벤트를 선택합니다.

  5. 선언 메뉴에서 UnhandledException을 선택합니다.

    애플리케이션은 주 애플리케이션이 실행되기 전에 UnhandledException 이벤트를 발생시킵니다.

  6. My.Application.Log.WriteException 메서드를 UnhandledException 이벤트 처리기에 추가합니다.

    My.Application.Log.WriteException(e.Exception,
        TraceEventType.Critical,
        "Application shut down at " &
        My.Computer.Clock.GmtTime.ToString)
    

    다음 예제에서는 처리되지 않은 예외를 로깅하기 위한 전체 코드를 보여 줍니다.

    Private Sub MyApplication_UnhandledException(
        ByVal sender As Object,
        ByVal e As ApplicationServices.UnhandledExceptionEventArgs
    ) Handles Me.UnhandledException
        My.Application.Log.WriteException(e.Exception,
            TraceEventType.Critical,
            "Application shut down at " &
            My.Computer.Clock.GmtTime.ToString)
    End Sub
    

참고하십시오