프로그래밍을 하면
언제든지 오류가 발생할 수 있다.
대부분 오류가 발생하면 프로그램이 종료된다.
하지만 종료하지 않고 미리 오류를 감지하여 유연하게 프로그램을 종료하거나
오류를 처리한 후에 계속 실행할 수 있으면 좀 더 세련된 프로그램이 될 것이다.
이것을 예외 처리, Exception handling 이라한다.
전통적으로 예외 처리는 if -else 문으로 구현했다.
하지만 이러한 방식은 검사 조건이 많아지면 상당히 복잡해지고
동시에 어떤 코드가 정상적인 실행이고 오류 코드 처리가 어떤 코드인지 가독성이 떨어진다.
이를 해결하기 위해 에외 처리기를 제공한다.
try{
//에외가 발생할 수 있는 코드
if(예외가 발생하면)
throw exception;
문장1;
} catch (예외 타입 매개변수){
//예외를 처리하는 코드
}
예외가 발생하지 않는 경우
catch 블록의 코드는 실행되지 않고
try 블록의 코드를 지나, catch 아래의 코드가 실행된다
예외가 발생하는 경우
try 블록의 if문에서 예외를 잡고,
문장1을 실행하지 않고 catch 블록으로 넘어가게된다.
throw 문장에서 던진 값이 catch의 매개 변수로 전달된다.
여러 가지 타입의 값을 처리하기 위해
catch 문은 여러 개를 가질 수 있으며, throw 문 또한 try 블록에 여러 개를 작성할 수 있다.