반응형
이전 글에서는 null을 참조하는 코드에서 NullPointerException이 발생해 프로그램이 중단되는 현상을 확인했어요.
이번에는 같은 상황에서 try-catch 블록을 사용해 예외를 안전하게 처리하고, 프로그램이 계속 실행될 수 있도록 만드는 코드를 실습해봅니다.
📌 예제 코드
public class ExceptionHandlingExample1 {
public static void printLength(String data) {
try {
int re = data.length();
System.out.println("문자 수 : " + re);
} catch (Exception e) {
System.out.println(e.getMessage());
}
System.out.println("[마무리 실행]\n");
}
public static void main(String[] args) {
System.out.println("[프로그램 시작]\n");
printLength("ThisIsJava");
printLength(null);
System.out.println("[프로그램 종료]");
}
}
💻 실행 결과
[프로그램 시작]
문자 수 : 10
[마무리 실행]
Cannot invoke "String.length()" because "data" is null
[마무리 실행]
[프로그램 종료]
💬 코드 설명
- printLength() 메서드 내부에 try-catch 블록을 사용해 예외 발생 가능성이 있는 코드를 감쌌습니다.
- "ThisIsJava"는 정상 처리되어 문자 수가 출력됩니다.
- null을 전달한 경우, 예외가 발생하지만 프로그램이 중단되지 않고 catch 블록으로 넘어가 예외 메시지를 출력합니다.
- System.out.println("[마무리 실행]") 문장은 예외 발생 여부와 관계없이 항상 실행됩니다.
- main() 메서드의 마지막 줄까지 실행되어 [프로그램 종료]도 출력됩니다.
💡 포인트 정리
- try 블록 안에서 예외가 발생하면, 해당 예외는 곧바로 catch 블록으로 전달되어 처리됩니다.
- 예외가 발생해도 프로그램을 비정상 종료하지 않고 계속 실행할 수 있게 됩니다.
- 예외 메시지를 출력할 때는 e.getMessage()를 활용하면 간단하게 원인을 알 수 있습니다.
📌 정리하자면, try-catch는 예외 상황이 발생해도 프로그램의 흐름을 유지하게 도와주는 안전장치입니다.
예외가 발생할 수 있는 코드를 try 블록에 넣고, 예외 처리 코드를 catch 블록에 작성함으로써 프로그램을 안정적으로 만들 수 있습니다.
'Java > 자바 정리' 카테고리의 다른 글
96. 예외 처리에도 순서가 있다! – Exception은 맨 마지막에 써야 해요 (0) | 2025.05.13 |
---|---|
95. 배열 범위도, 숫자 형식도 조심하자 – 예외 두 개를 잡는 try-catch (0) | 2025.05.13 |
94. 클래스를 찾을 수 없다면? ClassNotFoundException을 잡아보자 (0) | 2025.05.13 |
92. 예외 처리의 시작 – NullPointerException은 왜 터질까? (0) | 2025.05.13 |
91. 람다식으로 두 동작 처리하기 – 인터페이스를 분리해서 해결하자! (0) | 2025.05.12 |
90. 인터페이스 기반 익명 구현 객체 – 직접 클래스 만들지 않아도 OK (0) | 2025.05.12 |