본문 바로가기
Java

Exception(예외처리)

by 개발자공부 2024. 4. 29.

예외처리 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