상세 컨텐츠

본문 제목

Java try catch

Java

by doongeon 2025. 4. 24. 09:21

본문

세상에는 버그 없는 코드 없다

완벽한 코드는 존재하지 않는다.
언제 어디서든 오류는 발생할 수 있고, 그로 인해 프로그램이 예기치 않게 종료된다면, 우리는 화난 사용자와 마주하게 된다.

그렇다면 어떻게 해야 할까?

Java에서 제공하는 try-catch 문은 이런 상황에서 우리의 프로그램을 보호해준다.
오류를 복구하거나 회피함으로써 프로그램이 갑자기 종료되는 것을 방지하는 역할을 한다.


언제 try-catch를 꼭 사용해야 할까?

특히 외부 자원을 연결할 때는 반드시 사용해야 한다.
왜냐하면, 외부 자원의 상태는 우리가 직접 제어할 수 없기 때문이다.

예를 들어:

  • 파일(File) 연결
  • 데이터베이스(DB) 연결
  • 네트워크(Network) 통신
  • 시스템 주요 디바이스 연결 (예: CPU)

이러한 상황에서는 외부의 예기치 못한 문제로 예외가 발생할 수 있으므로, try-catch로 안정성을 확보하는 것이 필수적이다.


⚠️ 주의! 

1. catch 문의 순서

catch 블록은 위에서 아래로 순차적으로 검사된다.
따라서 더 구체적인 예외(Exception)먼저 처리해야 한다.

try { 
	// some code 
} catch (FileNotFoundException e) {
	// 구체적인 예외 먼저 
} catch (IOException e) {
	// 그보다 포괄적인 예외는 나중에 
}
 
 

만약 순서를 반대로 하면, 포괄적인 예외가 먼저 잡혀버려서
뒤의 세세한 예외는 도달하지 못하고 무시된다.

 

항상 디테일한 예외부터, 포괄적인 예외는 마지막에!

 

2. 다른 예외 같은 처리

try {
	int value = Integer.parseInt(array[i]);
	System.out.println("array[" + i + "]: " + value);
} catch (NullPointerException | NumberFormatException e) {
	System.out.println(e.toString());
	continue;
} catch (ArrayIndexOutOfBoundsException e) {
	System.out.println(e.toString());
	break;
}

 

'|'를 사용해서 여러 Exception을 한번에 처리할 수도 있다.

'Java' 카테고리의 다른 글

Java Thread  (0) 2025.04.25
Java Throwable hierarchy  (0) 2025.04.24
Java Interface  (0) 2025.04.23

관련글 더보기