Engineering Note

[Java] exception handling(예외 처리) 본문

Programming Language/Java

[Java] exception handling(예외 처리)

Software Engineer Kim 2025. 7. 10. 19:37

프로그램 에러, 오류

- 프로그램이 실행 중 어떤 원인에 의해서 오작동 하거나 비정상적으로 종료 되는 경우

 

컴파일 에러

- 컴파일시에 발생하는 에러

 

런타임 에러

- 실행시에 발생하는 에러

- 런타임 에러는 다시 에러(error)와 예와(exception)으로 구분한다.

  - 런타임 error: 프로그램 코드에 의해서 수습될 수 없는 심각한 오류. ex)메모리 부족, 스택오버플로우

  - (런차임) exception: 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류. 프로그래머의 적절한 코드로 비정상적 종료를 막을 수 있다.

 

논리적 에러

- 실행은 되지만, 의도와 다르게 동작하는 것.


예외 클래스의 계층 구조

- 자바는 실행 시 발생할 수 있는 오류를 미리 클래스로 정의했다.

- 모든 예외는 Exception 클래스의 자손이다. 반대로 모든 예외의 최고 조상은 Exception이다.

- Exception 클래스의 자손은 다시, RuntimeException클래스의 자손과 RuntimeException 클래스의 자손이 아닌 클래스로 구분할 수 있다.

 

예외 클래스 계층도

 

Exception클래스와 RuntimeException클래스 중심 상속계층도

 

 

RuntimeExeption은 Unchecked Exception라고도 하며, 그 외 Exception을 Checked Exception이라고도 한다.

 

예외처리(exeption handling) 정의

- 프로그램 실행 시 발생할 수 있는 예기치 못한 예외의 발생에 대비한 코드를 작성하는 것


예외처리 목적

- 예외 발생으로 인한 실행 중인 프로그램의 갑작스런 비정상 종료를 막고, 정상적인 실행상태를 유지할 수 있도록 하는것.

 

try-catch문

- 예외를 처리위한 구문

- 하나의 try블럭 더음에는 여러 종류의 예외를 처리할 수 있도록 하나 이상의 catch 블럭이 올 수 있다.

- 예외의 종류와 일치하는 catch 블럭이 없으면 예외는 처리되지 않는다.

 

사용방법

try{
  //예외가 발생할 가능성이 있는 코드
}catch (Exception1 e1){
  //Exception1이 발생할 경우 이를 처리할 코드
}catch (Exception1 e2){
  //Exception2가 발생할 경우, 이를 처리할 코드
}catch (ExceptionN eN){
  //ExceptionN이 발생할 경우, 이를 처리할 코드
}

 

 



참고 자료

- 자바의 정석(남궁성)

Comments