백엔드/Java

[Java] 예외 처리와 예외 클래스의 계층 구조

Se Yeon 2022. 9. 28. 16:06

컴파일러가 하는 일

1. 구문체크

2. 번역

3. 최적화 

 

컴파일 에러 : 컴파일 할 때 발생하는 에러

런타임에러 : 실행 중 발생하는 에러 (프로그램 종료)

논리적 에러 : 작성 의도와 다르게 동작 (프로그램 종료 X )

 

Java의 런타임 에러

- 에러 : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류

- 예외 : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류


예외 처리의 정의

  프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것
 목적 : 프로그램의 비정상 종료를 막고 정상적인 실행상태를 유지하는 것 

 

 예외 클래스의 계층 구조

출처 : 자바의 정석



- Exception 클래스 : 컴파일 과정중에 발생할 수 있는 예외로 코드 상에 명시적으로 예외 처리 (try-catch, throw)를 해줘야 한다. 

                  

- RuntimeException 클래스 : 프로그래머가 개발한 코드가 실행중에 언제든지 발생할 수 있는 예외

프로그래머가 코드상에 예상치 못한 실수를 하여 발생하는 예외이기 때문에 예측이 불가능하다 .