예외처리 Exception Handling
자바 프로그래밍에서 예외 처리는 프로그램 실행 중 발생할 수 있는 예상치 못한 상황(예외)을 관리하는 방법이다. 예외 처리를 통해 프로그램의 비정상적인 종료를 막고, 예외 상황을 보다 적절하게 처리하여 프로그램의 안전성과 신뢰성을 높일 수 있다.
(스마트폰에서 애플리케이션을 사용할 때 자꾸 강제 종료된다면 사용하려는 이용자가 아무도 없을 것이다.)
예외처리하는 방법
■ try catch
try {
// 예외가 발생할 수 있는 코드
} catch(ExceptionType1 e){
// ExceptionType1 예외를 처리하는 코드
} catch(ExceptionType2 e){
// ExceptionType2 예외를 처리하는 코드
}
■ try catch finally
try{
// 예외가 발생할 수 있는 코드
} catch(Exception e){
// 예외 처리 코드
} finally{
// 항상 실행되는 코드
}
finally 블록 : try 블록의 실행 여부와 관계없이 항상 실행되어야 하는 코드(예 : 자원 해제 로직)를 포함한다. finally 블록은 모든 catch 블록 다음에 온다.
자원 해제 --> Scanner 같은 것을 import하면 값을 받기 위해 계속 메모리를 차지한다. 메모리를 절약하기 위해 닫아주는게 필요하다.
■ throw
if(someCondition){
throw new Exception("Custom Error Message");
}
public void someMethod() throws IOException, NullPointerException{
// 예외가 발생할 수 있는 코드
}
프로그램에서의 오류와 예외처리 방법
■ 컴파일 오류(Compile error)
프로그램 코드 작성 중 발생하는 문법 오류.
최근에는 개발 환경(eclipse)에서 대부분 컴파일 오류는 detection(발각)된다.
■ 실행 오류(Runtime error)
실행 중인 프로그램이의도하지 않은 동작(bug)을 하거나 프로그램이 중지되는 오류.
실행 오류는 비정상 종료가 되는 경우 시스템에 심각한 장애를 입힌다.
■ 예외 처리의 중요성
☞ 프로그램의 비정상 종료를 피하여 시스템이 원할이 실행되도록 한다.
☞ 실행 오류가 발생한 경우 오류의 과정을 재현하는 것은 현실적으로 힘들다.
☞ 오류가 발생한 경우 log를 남겨서 추후 log 분석을 통해 그 원인을 파악하여 bug를 수정하는 것이 중요하다.
■ 오류와 예외 클래스
☞ 시스템 오류(error) : 가상 머신에서 발생한다. 프로그래머가 처리 할 수 없는 오류이다.
동적 메모리가 없는 경우, 스택 메모리 오버플로우 등
☞ 예외(Exception) : 프로그램에서 제어 할 수 있는 오류이다.
자바는 안전성이 중요한 언어로 대부분 프로그램에서 발생하는 오류에 대해 문법적으로 예외처리를 해야한다.
모든 예외 클래스의 최상위 클래스는 Exception 클래스이다.
'Java' 카테고리의 다른 글
I/O, 표준 입출력 (0) | 2024.05.20 |
---|---|
Thread, multi-threading (스레드) (0) | 2024.05.01 |
String, StringBuffer 클래스 (0) | 2024.04.29 |
Object 클래스 (0) | 2024.04.29 |
Interface (인터페이스) (0) | 2024.04.26 |