오류와 예외

오류 - 시스템에 비정상적인 상황이 생겼을 때 발생. 시스템 레벨에서 발생하는 심각한 오류 예외 - 개발자가 구현한 로직에서 발생하기 때문에 예외를 구분하고 처리하여 방지하는 것이 좋다

CheckedException 과 UnCheckedException

https://www.nextree.co.kr/content/images/2021/01/Exception-Class.png

https://www.nextree.co.kr/content/images/2021/01/Exception-Class.png

CheckedException UnCheckedException
처리여부 반드시 처리를 해야함 명시적인 처리를 강요하지 않음
확인시점 컴파일 단계 실행 단계
롤백 여부 롤백하지 않음 롤백
대표예외 Exception 하위 클래스 중 Runtime Exception을 제외한 모든 예외 RuntimeException
ex) NullPointerException, IllegalArgumentException

예외처리 방법

예외복구

try {
	// ...
} catch (NullPointerException e) {
	log.error("");
}

예외가 발생하여도 정상적인 흐름으로 진행됨. 예외를 미리 예측하여 다른 흐름으로 유도시켜 정상적으로 종료가 되게끔 함.

예외처리회피

public void test() throws Exception { }

예외 발생시 호출한 쪽에 예외를 던져 처리를 회피하는 것

예외전환

try {
	//
} catch (SQLException e) {
	throw new IlligalArgumentException();
}

수월한 예외처리를 위해 예외를 전환하여 던짐