학습할 것 (필수)


예외란?

자바에서 예외 처리 방법 (try, catch, throw, throws, finally)

Try-catch-finally

예외가 발생할 수 있는 부분을 try로 감싸고, try에서 예외가 발생하면 해당하는 예외를 잡아주는 catch부분이 실행된다.

try {
  // 예외가 발생할 가능성이 있는 코드
} catch (PossibleException1 e) {
  // try에서 발생한 예외가 PossibleException1에 해당한다면 여기서 처리
} catch (PossibleException2 e) {
  // try에서 발생한 예외가 PossibleException2에 해당한다면 여기서 처리
}

catch는 여러 블럭이 붙을 수 있지만 try에서 발생한 예외 타입에 따라 catch는 한번만 실행된다.

finallytrycatch이후에 붙을 수 있는 코드블럭으로 예외발생 여부에 상관없이 무조건 실행된다. try에서 예외가 발생하지 않는 경우 try-finally, 예외가 발생해서 캐치부분이 실행될 경우 try-catch-fianlly순으로 실행된다. finally블럭은 필수가 아니라 얼마든지 생략해도 좋다.

throw, throws

throw는 강제적으로 예외를 발생시키는 방법. 원하는 부분에 원하는 예외를 발생시켜주면 된다.

throws 키워드가 붙은 메서드는 예외를 던질 수 있다 라는 것을 명시해주고 예외가 발생할 시 해당 메서드를 호출한 메서드에게 예외를 전달해준다. 예외 처리와는 관련이 없고 전달만 해주기때문에 어디서든 반드시 예외처리부분이 필요하다.

public void iThrowException(String str) throws Exception1 {
  if (str.length() > 5) {
    throw new Exception1("example exception");
  }
}

public static void main(String[] args) {
  iThrowException("Hello World"); // 예외발생
}