반응형
런타임에서 발생하는 에러를 예외 (Exception) 라고 하는데, 자바는 예외 처리를 위한 잘 만들어진 방법을 제공하고 있습니다.
try - catch
try 와 catch로 이루어진 블록은 예외 처리에서 가장 핵심적인 역할을 수행합니다.
try 키워드로 먼저 예외처리를 할 코드를 블럭화 하고, 블럭 다음에 오는 catch 키워드를 이용해서 특정 타입의 예외가 발생할 때 수행할 작업을 정의합니다.
여러 개의 catch 키워드로 다양한 타입의 예외에 대한 처리가 가능하며 만일 예외가 발생하지 않는다면 마지막 catch 블럭 이후의 코드가 실행됩니다.
예외 발생 Throwing an exception
JVM에서 자동으로 발생시키는 예외 외에도 "throw" 키워드를 이용하여 프로그래머가 임의적으로 예외를 발생시킬 수 있습니다.
throw exeptOb;
여기서 exeptOb는 Throwable의 서브클래스로 정의된 예외클래스의 오브젝트입니다.
위 예제 코드에서 보이듯이, throw 는 타입이 아닌 오브젝트를 인자로 삼기 때문에, new 키워드가 사용되었습니다.
finally
try / catch 블록 이후에 반드시 실행시켜야 하는 코드가 있는 경우 (예를 들면 열려 있는 파일을 닫는 등) finally 키워드를 사용합니다.
throws
메서드가 스스로 처리하지 않는 예외를 발생시키는 경우, 반드시 throws 키워드와 함께 발생시킬 수 있는 예외를 정의해야 합니다.
다만 일반적인 에러나 런타임 예외사항 (Error, RumtimeException의 서브클래스) 의 경우 굳이 throws로 정의할 필요가 없습니다.
반응형