─━ IT ━─/자바

[JAVA] Exception 제어 방법 (Throw)

DKel 2021. 1. 16. 12:15
반응형

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 매개 변수는 이 예외에 대한 메시지의 세부 정보를 제공하고,

삭제 가능한 매개 변수는 이 예외의 원인을 제공합니다.

 

반응형