아니요. 자바에서 throw 문 뒤에는 어떠한 코드도 작성할 수 없습니다. 만약 throw 문 뒤에 코드를 작성하면 컴파일 타임에 'Unreachable Statement'(도달할 수 없는 문장) 오류가 발생합니다.
자바의 throw 키워드란?
- throw 키워드는 예외(exception)를 수동으로 발생시킬 때 사용합니다.
- 사용자가 정의한 논리적 오류 조건에 따라 프로그램의 실행을 의도적으로 중단해야 하는 경우, throw 키워드를 사용해 예외를 발생시킵니다.
- 이렇게 발생시킨 예외는 try-catch 블록을 통해 반드시 처리해야 합니다.
throw 키워드 사용 규칙
- throw 키워드 뒤에는 반드시 Throwable 타입의 객체가 와야 합니다.
- throw 키워드는 오직 메서드 로직 내부에서만 사용할 수 있습니다.
- throw는 프로그램의 흐름을 강제로 이동시키는 전이(transfer) 문이기 때문에, throw 문 뒤에 다른 문장을 배치하면 컴파일 타임 오류 'Unreachable code'가 발생합니다.
- throw 키워드를 사용하면 사용자 정의 예외와 미리 정의된(built-in) 예외 모두 던질 수 있습니다.
예제 코드
public class ThrowKeywordDemo {
public static void main(String[] args) {
try {
throw new ArithmeticException();
System.out.println("In try block"); // 컴파일 타임 오류, 도달할 수 없는 문장
} catch (Exception e) {
System.out.println(e);
e.printStackTrace();
}
}
}위 코드는 try 블록 안의 throw 문 뒤에 또 다른 문장이 존재하기 때문에 정상적으로 실행되지 않고, 컴파일 타임 오류가 발생합니다. 즉, 자바에서는 throw 문 뒤에 어떠한 문장도 작성할 수 없습니다.
실행 결과
unreachable statement
System.out.println("In try block");