티스토리 뷰

예외의 종류와 특징

자바에서 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
댓글