본문 바로가기

프로그래밍 언어론

[프로그래밍 언어론] 예외 처리

반응형

예외 처리를 위한 기능

 - 예외 정의 : 프로그래머가 새로운 예외를 정의할 수 있는 기능

 - 예외 발생(raise or throw exception) : 예외를 발생시킬 수 있는 문장

 - 예외 처리(exception handling) : 발생된 예외를 처리하기 위한 문장

 

재개 모델(resumption model) : 예외가 발생하면 예외 처리 후 예외를 발생시킨 코드로 재개하여 계속 실행

 

종료 모델(termination model) : 예외가 발생하면 예외 처리 후 예외를 발생시킨 코드로 재개하지 않고 try 문을 끝내고 다음 문장을 실행

 

호출된 함수 내에서 발생된 예외는 그 함수 내에서 처리되지 않으면 호출의 역순으로 처리될 때까지 호출자 함수에게 전파되는데 이를 예외 전파(exception propagation) 라고 함

 

예외 검사(exception checking) : java 컴파일러가 컴파일 시간에 예외를 처리할 수 있는지 검사

 - 메소드 내에서 발생 가능한 계외가 해당 메소드 내에서 try-catch 문에 의해서 처리될 수 있는지 검사

 - 처리될 수 없으면 메소드 헤더에 throws 절에 선언되어 있는지 검사

 

검사 예외 : 예외가 발생할 경우에 이를 처릿할 수 있는 처리문이 잇는지 컴파일러가 미리 검사하는 예외로 RuntimeException 을 예외로 제외한 예외는 모두 검사 예외. 메소드 내에서 처리되지 않는 예외는 메소드 헤더 부분에 throws 를 이용하여 선언되어야 함

 

비검사 예외 : RuntimeException 로 부터 상속받는 표준 런타임 예외들로 컴파일러가 예외검사를 하지 않음. 대신 프로그래머가 알아서 필요에 따라 이러한 예외들을 처리하도록 프로그램을 작성 하여야 함

java exception class hierarchy diagram

 

반응형