요르딩딩
자바 예외처리 (정리) 본문
예외란?
오류는 시스템에 비정상적인 상황이 생겼을때 발생한다. 이는 시스템 레벨에서 발생하기 때문에 심각한 수준의 오류이다.
따라서 개발자가 미리 예측하여 처리할 수 없기 때문에, 애플리케이션에서 오류에 대한 처리를 경쓰지 않아도 된다고한다.
예외는 개발자가 구현한 로직에서 발생한다. 즉, 예외는 발생할 상황을 미리 예측하여 처리할 수 있다.
즉. 예외는 개발자가 처리할 수 있기 때문에 예외를 구분하고 그에 따른 처리방법을 명확히 알고 적용하도록 해야한다.
예외클래스
모든 예외클래스는 최상위 Object 클래스의 자식 클래스인 Throwable클래스를 상속받고 있습니다.
Error는 시스템 레벨의 심각한 수준의 에러이기 때문에 시스템에 변화를 주어 문제를 처리해야하는 경우가 일반적인 반면,
Exception은 개발자가 로직을 추가하여 처리할 수 있습니다.
Exception중 RuntimeException이 중요한데, 이는 CheckedException과 UncheckedExceprtion을 구분하는 기준입니다.
CheckedException VS UncheckedExceprtion
Checked Exception의 경우는 발생가능성이 있는 메소드라면 반드시 tyy/catch로 감싸거나, throw로 던져서 처리해야합니다.
Unchecked Exception의 경우는 명시적인 예외처리를 하지 않아도 됩니다.
이는 개발자의 부주의함이 대부분이기 떄문에 굳이 로직으로 처리를 할 필요가 없도록 만들어져있다.
또한 예외를 확인 할 수 있는 시점에서도 구분할 수 있다.
Checked Exception은 일반적으로 컴파일 단계에서 Excception체크가 가능하며,
Unchecked Exception은 실행과정(런타임) 중 어떠한 특정 논리에 의해 발견되는 Excception이다.
따라서 우리가 주의깊게 봐야할것은 컴파일 단계에서 확인 할수 없는 Unchecked Exception이며, 실행과정 중에 발견되는 RuntimeException이다.
위표를 통해 roll-back 여부도 주의깊게 보도록하자.
예외처리 방법
- 예외복구 (다른 작업 흐름으로 유도) : 예외가 발생하여도 애플리케이션은 정상적으로 진행된다.
- 예외처리 회피 (처리하지 않고 호출한 쪽으로 throw) : 무조건호출한 쪽으로 예외를 던지는 것은 위험하다. 최선의 상황일때만 사용하자.
- 예외전환 (명확한 믜미의 예외로 전환 후 throw) : 예외를 잡아서 다른 예외를 던지는 것이다. 호출한 쪽에서 예외를 받아서 처리할때 명확하게 인지할 수 있도록 돕기 위한 방법이다.
예를 들어 Checked Exception중 복구가 불가능한 예외가 잡혔다면 이를 Unchecked Exception으로 전환하여 다른 계층에서 일일이 예외를 선언할 필요가 없도록 할 수 도 있다고 한다.
'[Web] > [Error & Exception]' 카테고리의 다른 글
[뉴렉처] 자바 예외처리 (4,5,6,7강) (0) | 2022.01.17 |
---|---|
[뉴렉처] 자바예외처리 (1,2,3강) (0) | 2022.01.14 |
Spring 404 error 해결하는 법 (0) | 2021.12.21 |