예외 클래스와 연결 예외

song yuheon·2023년 8월 27일
0

Java

목록 보기
24/46
post-thumbnail

예외 클래스

checked Exception & Unchecked Exception

  • checked Exception: 사전에 예외처리 해야하는 예외. 처리를 안 할 경우 컴파일 시 오류 발생.
  • Unchecked Exception: 사전에 알지 못했던 예외.

Java Throwable Class

  • Throwable 클래스는 Object 클래스를 상속받음.
  • Throwable = Error + Exception
    • Java에는 대부분의 상황에 해당하는 에러들이 이미 구현되어 있음. 없는 경우에는 개발자가 직접 정의하여 구현할 수 있음.

Chained Exception

연결된 예외 (Chained Exception)

  • 하나의 예외가 다른 예외를 유발할 수 있음.

예외 연결이란?

  • 원인이 된 예외를 새로운 예외에 포함시킨 후, 그 새로운 예외를 다시 던지는 것.

예외 연결의 목적

  • 여러 예외를 한 분류로 묶어 처리하기 위해.
  • Checked exception을 unchecked exception으로 변환하기 위해.

원인 예외를 다루는 메소드

  • initCause(): 지정한 예외를 원인 예외로 등록.
  • getCause(): 원인 예외를 반환.

예외 처리 전략
1. 예외 복구: 기본 데이터 반환 등, 최소한의 대응만 하는 경우. 자주 사용되지 않음.

public String getDataFromAnotherServer(String dataPath) {
    try {
        return anotherServerClient.getData(dataPath).toString();
    } catch (GetDataException e) {
        return defaultData;
    }
}
  1. 예외 처리 회피: 예외를 상위 레이어로 그대로 전달하는 경우.
public void someMethod() throws Exception { ... }

public void someIrresponsibleMethod() throws Exception {
    this.someMethod();
}
  1. 예외 전환: 다른, 더 적절한 예외로 바꾸어 던지는 경우.
public void someMethod() throws IOException { ... }

public void someResponsibleMethod() throws MoreSpecificException {
    try {
        this.someMethod();
    } catch (IOException e) {
        throw new MoreSpecificException(e.getMessage());
    }
}

profile
backend_Devloper

0개의 댓글