Java에서 예외를 두는 방법을 이해하는 것이 중요합니다. 이렇게 하면 런타임 대신 컴파일 시간에 오류가 확인되는 고품질 코드를 만들고 디버깅 및 복구를 보다 쉽게 해주는 사용자 지정 예외를 만들 수 있습니다.
Java에서 예외를 만드는 방법
예외를 만드는 것은" throw"문을 사용하면서 당신은 던지고자 하는 예외 개체를 지정합니다.
모든 예외 있는 사람이 읽을 수 있는 오류 설명 메시지를 포함한다.
다음은 예제 코드입니다.
throw new Exception("Exception message");
Throws 키워드를 사용한 경우
Throws 키워드는 특정한 유형의 예외를 발생시킬 수 있음을 나타내기 위해 사용되는 키워드입니다.
호출자는 트라이 캐치 블록 (try-catch)을 사용하여 예외를 처리하거나 예외를 전파해야 합니다.
이렇게 사용하게 되면 확인되거나 확인되지 않은 예외를 처리할 수 있습니다.
Throws 키워드를 사용하면 컴파일러가 이러한 유형의 오류를 처리하는 코드를 작성할 수 있지만
프로그램의 비정상적인 종료를 방지하지는 못합니다.
Throws 키워드의 도움으로, 우리는 메소드가 던질 수 있는 예외의 유형에 대한 정보를
메소드의 호출자에게 제공할 수 있습니다.
형식은 다음과 같습니다.
type method_name(parameters) throws exception_list
위의 구문에서 exception_list는 메소드에서 발생할 수 있는 모든 예외의 쉼표로 구분된 목록입니다.
void testMethod() throws ArithmeticException, ArrayIndexOutOfBoundsException {
// rest of code
}
아래 예제에서는 예외 발생을 시연하기 위한 테스트 방법을 만들었습니다.
toString() 메서드는 개체의 텍스트 표현을 반환하지만 이 경우 변수는 null입니다.
null 참조로 메서드를 호출하거나 null 참조 필드에 액세스하려고 하면 NullPointerException 예외가 발생합니다.
static void testMethod() throws Exception {
String test = null;
test.toString();
}
try-catch로 핸들링하게 되면 다음과 같이 작성할 수 있습니다.
public class Example {
public static void main(String[] arg) {
try {
testMethod();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Exception 클래스 작성
응용 프로그램 내에서 예외를 더 효과적으로 사용하려면
직접 만들고 버리는 방법(클래스 만들기)을 이해하는 것이 중요합니다.
다음은 사용자 고유의 예외와 정의 방법에 대해 설명합니다.
package java.lang;
public class Exception extends Throwable {
static final long serialVersionUID = -3387516993124229948L;
public Exception() {
super();
}
public Exception(String message) {
super(message);
}
public Exception(String message, Throwable cause) {
super(message, cause);
}
public Exception(Throwable cause) {
super(cause);
}
protected Exception(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
super(message, cause, enableSuppression, writableStackTrace);
}
}
Exception 클래스는 복구 가능한 예외를 나타내는 모든 클래스의 슈퍼 클래스입니다.
예외가 발생하면 응용 프로그램 코드에서 예외가 발생할 수 있습니다.
예외 클래스는 던질 수 있는 클래스를 확장합니다.
생성자에는 메시지와 원인이라는 두 가지 매개 변수가 포함됩니다.
detailMessage 매개 변수는 이 예외에 대한 메시지의 세부 정보를 제공하고,
삭제 가능한 매개 변수는 이 예외의 원인을 제공합니다.