JAVA Exception 정리

2019.02.26 09:38JAVA

## 예외란
오류와 예외의 개념

오류는 시스템이 비 정상적인 상황이 생겼을대 발생된다.
이는 시스템 레벨에서 발생된 것으로 심각한 수준의 오류이며, 개발자가 미리 예측 할수 없는 부분으로 애플리케이션단에서의 오류에 대한 처리를 신경 쓰지 않아도 된다.

오류가 시스템레벨에서 발생되면 예외는 개발자가 구현한 로직에서 발생된다. 즉 예외 상황을 예측하여 처리 할 수 있다.

예외란 개발자가 처리할수 있기때문에 예외를 구분하고 그에 따른 명확한 처리를 알고 적용하는 것이 중요하다.


모든 예외 클레스는 Thowable을 상속 받고 있다.
Throwable 을 상속 받는 클레스는 Error 와 Exception 이다.


Exceptipn 하위 클레스로 RuntimeException을 살펴보자
RuntimeException에 주목하는 이유는
CheckedException과 UnCheckedException을 구분하는 척도이기 때문이다.

RuntimeException을 상속 받은 모든 클레스는 Unchecked Exception 이며, 그외는 checkedException 이다.

## Checked Exception
반드시 예외처리
컴파일단계
예외발생시 트랜잭션 처리 롤백 없음

## Unchecked Exception
명시적인 처리를 강제하지 않음
실행단계
트렌잭션 처리 롤백 있음


## 정리
프로그램 시작전 즉 컴파일 단계에서 반드시 예외 처리가 필요한경우엔 CheckedException (Exception 상속)을 이용하고,
명시적 처리를 강제하지 않는 경우는 UncheckedException(RuntimeException 상속 ) 을 사용한다.