기계는 거짓말하지 않는다

C# try, catch, finally Exception 처리 본문

C#

C# try, catch, finally Exception 처리

KillinTime 2022. 5. 6. 17:51

프로그램 실행 중 발생하는 오류를 처리한다.

다음은 예제 코드이다.

private void ThreadStart()
{
    try
    {
            argsThread = new Thread(new ParameterizedThreadStart(TempFunction));
            argsThread.Start(tempArgs);
            Thread.Sleep(interval);
        }
    }
    catch (ThreadInterruptedException)
    {
    	MessageBox.Show("thread interrupted", "확인");
    }
    catch (Exception e1)
    {
        MessageBox.Show(e1.Message + "\r\nLocation: ThreadStart", "오류", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    finally
    {
        MessageBox.Show("Finally", "확인");
    }
}

try 문 블록 안에서 오류가 발생하고 첫 번째 catch 문인 ThreadInterruptedException 예외와 일치하면 catch 문 블록 안의 코드가 실행되고 아니라면 두 번째 catch 문인 Exception에서 처리된다.

 

Exception은 모든 예외를 포함하므로 이 catch 문이 가장 앞에 있으면(ThreadInterruptedException catch 문이 두 번째라면) 다른 catch 문은 실행되지 않는다.

 

e1과 같은 변수를 선언하여 e1.Message로 간단한 오류 Message 확인이 가능하고, e1.StackTrace로 스택 트레이스 확인도 가능하다. (스택 트레이스는 개발 디버그 용으로 사용 권장, 배포 시 스택 트레이스는 사용하지 말 것)

 

finally 문은 예외와 관계없이 무조건 실행되어야 하는 코드를 작성한다.

'C#' 카테고리의 다른 글

C# Thread, Thread 매개변수  (0) 2022.04.16
C# Windows Forms 이벤트 등록  (0) 2021.07.16
C# is, as, typeof 키워드  (0) 2021.07.16
C# partial class  (0) 2021.07.15
C# Windows Forms MenuStrip Check  (0) 2021.07.13
Comments