Java Exception Handling

예외 처리 (Exception Handling)

예외의 종류 (Types of Exceptions)

Java에서 예외는 크게 두 가지로 나뉩니다:

  1. Checked Exception (확인된 예외):
  • 컴파일 시점에서 확인되는 예외로, 반드시 예외 처리를 해야 합니다.
  • IOException, SQLException 등이 이에 해당합니다.
  1. Unchecked Exception (미확인 예외 또는 런타임 예외):
  • 컴파일러가 예외 처리 여부를 확인하지 않습니다.
  • NullPointerException, ArrayIndexOutOfBoundsException, ArithmeticException 등이 이에 해당합니다.

try-catch 블록 (try-catch Block)

Java에서 예외 처리는 try, catch, finally 블록을 사용하여 합니다. try 블록 내에서 예외가 발생할 수 있는 코드를 작성하고, 예외가 발생하면 catch 블록에서 처리합니다. finally 블록은 예외 발생 여부와 관계없이 항상 실행되는 코드를 작성할 때 사용됩니다.

try-catch 블록 예제:

public class Main {
    public static void main(String[] args) {
        try {
            int[] numbers = {1, 2, 3};
            System.out.println(numbers[4]); // ArrayIndexOutOfBoundsException 발생
        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("배열 인덱스를 초과했습니다.");
        }
    }
}

위의 예제에서 try 블록 내에서 배열의 인덱스를 초과하는 접근을 시도하고 있습니다. 이 때 ArrayIndexOutOfBoundsException이 발생하므로 catch 블록에서 예외를 잡아 처리합니다.

사용자 정의 예외 (Custom Exceptions)

사용자 정의 예외는 기존의 예외 클래스를 확장하여 새로운 예외 클래스를 만드는 것을 말합니다. 주로 특정 애플리케이션에서 발생할 수 있는 독자적인 예외 상황을 처리할 때 사용됩니다.

사용자 정의 예외 예제:

// 사용자 정의 예외 클래스
class MyCustomException extends Exception {
    public MyCustomException(String message) {
        super(message);
    }
}

// 예외 발생하는 메서드
class MyClass {
    void validateAge(int age) throws MyCustomException {
        if (age < 18) {
            throw new MyCustomException("미성년자는 이 작업을 수행할 수 없습니다.");
        } else {
            System.out.println("성인으로 인정됩니다.");
        }
    }
}

// 사용 예제
public class Main {
    public static void main(String[] args) {
        MyClass obj = new MyClass();
        try {
            obj.validateAge(15); // MyCustomException 발생
        } catch (MyCustomException e) {
            System.out.println("예외 발생: " + e.getMessage());
        }
    }
}

위의 예제에서 MyCustomException 클래스는 Exception 클래스를 상속하여 사용자 정의 예외를 정의합니다. MyClass에서는 validateAge() 메서드에서 나이가 18세 미만이면 MyCustomException을 발생시킵니다. Main 클래스에서는 이 예외를 catch 블록에서 잡아 처리하고 있습니다.

예외 처리는 Java 프로그래밍에서 중요한 부분으로, 예상치 못한 상황에 대비하여 프로그램의 안정성을 높이는 데 기여합니다. Java의 예외 처리 기능을 잘 이해하고 활용하면, 안정적이고 견고한 프로그램을 개발할 수 있습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *