Java/자바 정리

93. try-catch로 예외를 안전하게 처리해보자

코딩하는냥이 2025. 5. 13. 10:39
반응형

이전 글에서는 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 블록에 작성함으로써 프로그램을 안정적으로 만들 수 있습니다.