프로그래밍언어/C#
2020315[C#] Try문과 예외 / finally블록
HJH0825
2020. 3. 15. 20:37
Try문
try문은 오류 처리 또는 마무리코드를 위한 코드 블록을 지정한다. try블록 다음에 catch블록이나 finally블록이 올 수 있다. try블록 안에서 오류가 발생하면 catch블록이 실행한다.
마무리 작업을 수행하기 위한 finally블록은 실행이 try블록을 벗어나면, 또는 catch블록이 존재하고 실제로 실행된 경우에는 catch문블록을 벗어나면 실행된다. 즉, finally블록은 오류가 발생하든 발생하지 않든 항상 실행된다.
어떻게 사용될지 예제를 보자.
위 예제를 실행하면 다음과 같은 오류를 뱉는다.
프로그램은 강제종료된다. 위와 같은 에러는 catch로 처리해 줄 수 있다.
실행결과 =>
실행순서는 이렇게 된다.
1. 함수에서 예외가 발생
2. catch블록으로 이동
3. catch블록의 실행이 성공적이면 try다음 문장으로 이동 (finally블록이 있다면 그것이 먼저 실행) 그렇지 않다면 실행은 함수를 호출한 곳으로 돌아간다(finally블록이 있다면 그것이 먼저 실행) 그런다음 같은 처리가 반복.
Catch 절
블록을 잡고자 하는 예외 형식을 괄호 쌍 안에 지정한다.
그러한 예외 형식은 반드시 System.Exception클래스이거나 System.Exception의 파생 클래스이어야 한다.
finally 블록
finally블록은 항상 실행된다. 예외가 던져지든 아니든, 그리고 try블록이 끝까지 실행되든 아니든 이 블록은 항상 실행된다. 그래서 흔히 마무리 코드에서 쓰인다.