완벽한 코드는 존재하지 않는다.
언제 어디서든 오류는 발생할 수 있고, 그로 인해 프로그램이 예기치 않게 종료된다면, 우리는 화난 사용자와 마주하게 된다.
Java에서 제공하는 try-catch 문은 이런 상황에서 우리의 프로그램을 보호해준다.
오류를 복구하거나 회피함으로써 프로그램이 갑자기 종료되는 것을 방지하는 역할을 한다.
특히 외부 자원을 연결할 때는 반드시 사용해야 한다.
왜냐하면, 외부 자원의 상태는 우리가 직접 제어할 수 없기 때문이다.
예를 들어:
이러한 상황에서는 외부의 예기치 못한 문제로 예외가 발생할 수 있으므로, try-catch로 안정성을 확보하는 것이 필수적이다.
catch 블록은 위에서 아래로 순차적으로 검사된다.
따라서 더 구체적인 예외(Exception) 를 먼저 처리해야 한다.
try {
// some code
} catch (FileNotFoundException e) {
// 구체적인 예외 먼저
} catch (IOException e) {
// 그보다 포괄적인 예외는 나중에
}
만약 순서를 반대로 하면, 포괄적인 예외가 먼저 잡혀버려서
뒤의 세세한 예외는 도달하지 못하고 무시된다.
항상 디테일한 예외부터, 포괄적인 예외는 마지막에!
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 Thread (0) | 2025.04.25 |
|---|---|
| Java Throwable hierarchy (0) | 2025.04.24 |
| Java Interface (0) | 2025.04.23 |