try-catch 문
예외처리에 효과적으로 쓰일 수 있는 구문이다.
java
try {
System.out.println(3);
System.out.println(0/0); // ArithmeticException 발샐
System.out.println(4);
}
catch (Exception e) { // ArithmeticException 대신 Exception 사용
e.printStackTrace();
system.out.println("잘못된 나눗셈");
}
여러 메소드
Exception 클래스에 담긴 대표적인 메소드이다.
printStackTrace() : 예외발생 당시 호출 스택에 있던 메소드의 정보 및 예외 메세지 출력
getMessage() : 발생한 예외클래스의 인스턴스에 저장된 메시지를 얻을 수 있다.
멀티 catch
여러 catch 블록을 중복해서 쓸 수도 있다.
java
try {
...
}
catch (ExceptionA | ExceptionB e) {
e.printStackTrace();
}
예외 발생시키기
- 새로운 예외 객체 e를 만든다.
throw e실행
java
try {
Exception e = new Exception("고의로 발생");
throw e;
}
catch (Exception e) {
e.printStackTrace();
}
메서드에 예외 선언
다음과 같이 메서드에 예외를 선언할 수 있다.
java
void ft_new() throws Exception1, Exception2 {
...
}
이 의미는 메서드에 예외가 생길 수 있다는 것을 의미한다.
- 물론, 이 메서드가 속한 현재 클래스의 자손도 마찬가지!
- 이를 통해 어떠한 예외가 발생할 수 있을지 사용자에게 미리 숙지시킬 수 있다.
finally 키워드
java
try {
... // 예외 (1번째)
}
catch {
... // 예외처리 (2번째)
}
finally {
... // 예외 발생여부와 상관없이 실행 (3번째)
}