열렬히.뛰기

예외처리

Language > 프로그래밍 언어 > Java > 예외처리

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();
}

예외 발생시키기

  1. 새로운 예외 객체 e를 만든다.
  2. 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번째)
}