자바프로그램 실행중 발생하는 오류들을 예외(Exception)이라고 한다. 이와 같은 오류상황들이 프로그램 실행중 발생할 가능성이 있다면, 적절하게 대응할 수 있는 코드를 작성해줘야 하는데 이를 예외처리라 한다.
try{
①
} catch(발생할 수 있는 예외 타입){
②
} finally{
③
}
① : try안에는 예외가 발생할 수 있는 코드를 작성한다.
② : 예외처리 코드
③ : 예외와 상관없이 무조건 실행되는 코드
finally문은 생략하는 경우도 많으며,
예외가 없을경우 ① → ③
예외가 있을경우 ① → ② → ③ 순서로 진행된다.
대표적으로 e.getMessage()와 e.printStackTrace()가 있다.
근데 내경험상 printStackTrace는 보안에 위배되는경우가있어 그냥 logger.error()이런식으로 처리했던것 같다.
throw키워드로 임의로 예외를 발생시킬수도 있다.
try{
throw new Exception("임의발생예외")
}catch(Exception e){
e.printStackTrace();
}
예외처리를 예외가 발생할 가능성 있는곳에서 직접 처리하지 않고 외부 함수로 던져서 처리할 수도 있다.
메소드를 호출한 쪽으로 예외를 던질때는 throws라는 키워드를 사용하면 된다.
public class Example{
public static void main(String args[]){
try{
fireInTheHall();
} catch (Exception e) {
e.printStackTrace();
} finally{
}
}
public statc void fireInTheHall() throws Exception{
throw new Exception("예외 받아라");
}
}