Exception의 종류

2022. 3. 7. 23:29
반응형

Error / Runtime Exception / Other Exception

크게 세가지로 구분한다.

 

Error는 JVM이나 시스템 리소스 레벨에서 발생하므로 개발자의 역량으로 막을 수 있는 것이 아니지만

Exception은 개발자가 코드로 적절한 예외처리를 해줌으로써 처리가 가능한 부분이다.

 

오류(Error)와 예외(Exception)의 차이는 다음과 같다

기본 시스템 자원이 부족하여 오류가 발생했습니다. 코드로 인해 예외가 발생했습니다.
회복 오류는 복구 할 수 없습니다. 예외는 복구 가능합니다.
키워드 프로그램 코드에서 오류를 처리 할 수있는 방법은 없습니다. 예외는 3 개의 키워드 "try", "catch"및 "throw"를 사용하여 처리됩니다.
결과 오류가 감지되면 프로그램이 비정상적으로 종료됩니다. 예외가 감지되면 throw 및 catch 키워드에 따라 예외가 발생합니다.
유형 오류는 검사되지 않은 유형으로 분류됩니다. 예외는 체크 된 또는 확인되지 않은 유형으로 분류됩니다.
꾸러미 Java에서 오류는 "java.lang.Error"패키지로 정의됩니다. Java에서 예외는 "java.lang.Exception"에 정의됩니다.
OutOfMemory, StackOverFlow. 확인 된 예외 : NoSuchMethod, ClassNotFound.
체크되지 않는 예외 : NullPointer, IndexOutOfBounds.

출처:Gadget-info.com https://ko.gadget-info.com/difference-between-error

 

Exception은 Runtime Exception(런타임 시 발생하는 오류)와 Other Exception(그 외 오류)로 다시 나눌 수 있다.

또는 Checked Exception과 Unchecked Exception(Runtime Exception을 상속함)으로 구분하기도 한다.

 

중요한 점은 컴파일러가 예외체크를 하느냐 아니냐 인데, Runtime Exception은 하지 않는다.

또한 Runtime Exception은 예외가 발생하면 기본적으로 Rollback처리된다.

그러나 Unchecked Exception일 경우에도 예외 처리를 해야할 수도 있고, 이는 개발자의 선택사항이다.

 

그러나 Checked Exception은 프로그램이 의도된 동작을 하기 위해서 발생 시에 개발자가 명시적으로 예외처리를 해주어야 할 부분이다. 그리고 예외가 발생하더라도 기본적으로 Rollback이 되지 않는다.

ex) IOException , SQLException 등등

 

예외 처리는 throws를 사용하여 특정 메소드를 지정하여 예외처리를 넘기거나,

ex) throws OOOException

 

해당 위치에서 try - catch - (finally) 를 사용해서 catch(OOOException e){ } 이런 식으로 예외처리 구문을 넣어줄 수도 있다.

 

예외처리를 해줄 때 주의할 점이 있다면

반드시 log를 남기고, 그 log가 상세해야 한다는 점이다.

또한 예외를 catch했으면 처리할 로직도 작성해주어야 한다.

 

예를 들면 catch에 매번 e.printStackTrace()를 사용하기보다 log.error(e.getMessage())처럼

로그 관련 라이브러리를 사용하여 남기는 쪽이 알아보기 쉽고 편리함. ex) log4j, logback 등

 

반응형

'BE > JSP' 카테고리의 다른 글

java.text.CompactNumberFormat  (0) 2022.01.20
JSP include  (0) 2021.11.11
파일업로드 cos.jar  (0) 2021.11.03
롬복 라이브러리 Lombok  (0) 2021.10.26

BELATED ARTICLES

more