티스토리 뷰
예외의 종류와 특징
자바에서 throw를 통해 발생시킬 수 있는 예외는 크게 세 가지가 있다.
Error
- java.lang.Error의 서브클래스들
- 시스템 관련 에러
- 주로 자바 VM에서 발생시키기 때문에 코드에서 잡을 수 없음 ex) OutOfMemoryError, ThreadDeath
Exception과 체크 예외
- java.lang.Exception의 클래스와 서브클래스들
- 크게 체크 예외와 언체크 예외로 구분됨
- 체크 예외: RuntimeException 클래스를 상속하지 않은 Exception 서브 클래스
- 체크 예외는 반드시 예외 처리 코드를 작성해야 함. 작성하지 않으면 컴파일 에러 발생(IOException, SQLException 등)
RuntimeException과 언체크/런타임 예외
- 언체크 예외: RuntimeException 클래스를 상속한 Exception 서브 클래스
- 명시적인 예외처리를 강제하지 않음(런타임 예외)
- 주로 프로그램의 오류가 있을 때 발생하도록 의도된 것
- 오브젝트를 할당하지 않은 레퍼런스 변수를 사용하려고 시도할 때 발생하는 NullPointerException
- 허용되지 않는 값을 사용해서 메소드를 호출할 때 발생하는 IllegalArgumentException
- 피할 수 있지만 개발자가 부주의해서 발생할 수 있는 경우에 발생하는 것이 런타임 예외
최근에 새로 등장하는 자바 표준 스펙 API들은 체크 예외보단 언체크 예외로 만들어지는 경향
'공부 > 토비의 스프링 3.1' 카테고리의 다른 글
DataAccessException과 예외 추상화 (0) | 2019.03.21 |
---|---|
예외처리 방법 (0) | 2019.03.19 |
초난감 예외처리 코드 (0) | 2019.03.19 |
템플릿/콜백 패턴 (0) | 2019.03.06 |
중첩 클래스의 종류 (0) | 2019.03.05 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크