[Java]예외처리 - zeroam/studynote GitHub Wiki
예외 처리문의 기본 구조
try {
...
} catch(예외1) {
...
} catch(예외2) {
... ...
}
- 다음와 같이 에러가 발생할만한 영역을 try로 감싸고 예외 처리는 catch영역에서 처리한다.
- catch는 여러개가 올 수 있으며, 위에서 부터 아래로 에러처리를 수행한후 예외 처리문을 빠져 나온다
finally
- 예외가 발생하더라도 무조건 실행되어야 하는 블록이 있다면 finally 블록을 활용한다.
try {
} catch (예외) {
} finally {
}
발생하기 쉬운 예외
[ArrayIndexOutOfBoundsException]
- 배열의 인덱스를 잘못 지정 했을때
int arr[] = {1, 2, 3};
int num = arr[3];
[NullPointerException]
- 객체를 생성하지 않고 멤버메서드를 호출했을때
Calc c = null;
c.add();
예외 발생시키기(throw)
- 연산자 new를 이용해서 예외 클래스의 객체를 만들고
- 키워드 throw를 이용해서 예외를 발생시킨다.
Exception e = new Expception("메시지");
throw e;
예외 던지기(throws)
- 예외가 되는 메서드를 호출한 곳에서 처리할 수록 떠넘김
- 만약 메인메서드에서 throws로 예외를 떠넘기면 자바 가상머신(JVM)에서 예외처리함
public void errorMethod() throws Exception {
}