다음을 통해 공유


방법: Visual Basic에서 예외 기록

업데이트: 2007년 11월

My.Application.Log 및 My.Log 개체를 사용하여 응용 프로그램에서 발생하는 예외에 대한 정보를 기록할 수 있습니다. 이들 예제에서는 My.Application.Log.WriteException 메서드를 사용하여 명시적으로 catch하는 예외와 처리되지 않은 예외를 기록하는 방법을 보여 줍니다.

추적 정보 로깅에는 My.Application.Log.WriteEntry 메서드를 사용합니다. 자세한 내용은 WriteEntry 메서드(My.Application.Log 및 My.Log)를 참조하십시오.

처리된 예외를 기록하려면

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

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

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

    Dim 및 MsgBox 줄의 주석을 해제하여 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 & ".")
    

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

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

  2. 응용 프로그램 탭을 클릭합니다.

  3. 응용 프로그램 이벤트 보기 단추를 클릭하여 코드 편집기를 엽니다.

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

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

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

    주 응용 프로그램이 실행되기 전에 UnhandledException 이벤트가 발생합니다.

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

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

예제

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

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

다음 예제에서는 처리되지 않은 예외를 기록하기 위한 전체 코드를 보여 줍니다. 프로젝트 디자이너를 사용하여 코드 편집기에서 응용 프로그램 이벤트에 액세스할 수 있습니다. 자세한 내용은 방법: 응용 프로그램 이벤트 처리(Visual Basic)를 참조하십시오.

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

참고 항목

작업

방법: 로그 메시지 쓰기

연습: My.Application.Log가 정보를 기록하는 위치 확인

연습: My.Application.Log가 정보를 기록하는 위치 변경

개념

Visual Basic에서 응용 프로그램 로그 작업

참조

My.Application.Log 개체

My.Log 개체

WriteEntry 메서드(My.Application.Log 및 My.Log)

WriteException 메서드(My.Application.Log 및 My.Log)