/ JAVAJUNGSUK

Ch8-18. 연결된 예외

자바의 정석 기초편

0. 목차



Chapter8. 예외처리

Ch8 - 18. 연결된 예외(chained exception)



Ch8 - 18. 연결된 예외(chained exception)


▶ 연결된 예외(chained exception)란?

▷ 한 예외가 다른 예외를 발생시킬 수 있음
▷ 예외A가 예외B를 발생 시키면, A는 B의 원인 예외(cause exception)
Throwable initCause(Throwable 예외A) // 지정한 예외를 원인 예외로 등록
Throwable getCause() // 원인 예외를 반환

▶ Throwable?

▷ Throwable은 Exception이라 생각하고 사용


public class Throwable implements Serializable {

	private Throwable cause = this; // 객체 자신(this)을 원인 예외로 등록
	
	public synchronized Throwable initCouse(Throwable cause) {
		this.cause = cause; // cause를 원인 예외로 등록 
		return this;
	}
}

▶ 예시

▷ 원인 예외 때문에 만들어진 연결된 예외


▶ 연결된 예외를 사용하는 이유?

▷ 여러 예외를 하나로 묶어 다루기 위해


▷ checked예외를 unchecked예외로 변경 할 때
▷ 즉 필수 처리를 선택 처리로 변경할 때
▷ 보통 예외 선언을 하는 건 checked예외 = Exception자손 = 예외 필수 처리
  • checked예외일 때

  • unchecked예외일 때

연결된 예외 → 겉으로 봤을 땐 unchecked예외인 것 처럼 보이게 함