본문 바로가기
GD's IT Lectures : 기초부터 시리즈/자바(JAVA) 기초부터 ~

[자바(JAVA)] 예외 처리

by GDNGY 2023. 4. 27.

13. 예외 처리

자바에서 예외 처리는 프로그램 실행 중 발생할 수 있는 예외적인 상황(오류 또는 문제)을 처리하는 메커니즘이며, 프로그램의 안정성과 가용성을 보장하는 데 중요한 역할을 합니다.

 

예외 처리의 주요 목적은
  1. 프로그램 실행 중 발생한 예외를 감지하고 적절한 처리를 수행합니다.
  2. 예외 발생 시 프로그램이 중단되지 않고 정상적으로 계속 실행되도록 합니다.
  3. 발생한 예외에 대한 정보를 기록하여 프로그램 개발자가 문제를 확인하고 수정할 수 있도록 합니다.

 

13.1. 예외 클래스

자바에서 예외(exception)는 프로그램 실행 중 발생하는 오류를 나타냅니다. 예외는 Throwable 클래스를 상속받은 클래스로 구현되며, 예외 클래스는 크게 체크 예외(Checked Exception)와 언체크 예외(Unchecked Exception)로 나뉩니다. 체크 예외는 컴파일러가 확인하고 처리를 강제하는 예외로 IOException, SQLException 등이 있습니다. 언체크 예외는 컴파일러가 확인하지 않으며 RuntimeException 클래스를 상속받은 예외로 NullPointerException, ArithmeticException 등이 있습니다.

 

13.2. try-catch-finally 문

예외 처리는 try-catch-finally 문을 사용하여 처리할 수 있습니다. try 블록에는 예외가 발생할 수 있는 코드를 작성하고, catch 블록에는 발생한 예외를 처리하는 코드를 작성합니다. 예외를 처리할 때, 특정 예외 클래스 또는 상위 예외 클래스를 사용하여 다양한 예외를 처리할 수 있습니다. finally 블록에는 예외 발생 여부와 관계없이 실행되는 코드를 작성합니다.

try {
    // 예외 발생 가능한 코드
} catch (NullPointerException e) {
    // NullPointerException 처리 코드
} catch (IOException e) {
    // IOException 처리 코드
} catch (Exception e) {
    // 그 외 예외 처리 코드
} finally {
    // 예외 발생 여부와 관계없이 실행되는 코드
}

 

13.3. 사용자 정의 예외

자바에서는 사용자가 직접 예외 클래스를 정의할 수 있습니다. 사용자 정의 예외 클래스는 Exception 또는 RuntimeException 클래스를 상속받아 구현합니다. 생성자를 통해 에러 메시지를 전달할 수 있으며, 필요에 따라 추가적인 정보를 포함할 수 있습니다.

class CustomException extends Exception {
    public CustomException(String message) {
        super(message);
    }
}

 

13.4. throws 키워드

예외를 처리하지 않고, 호출한 메서드로 예외를 전달하려면 메서드 선언부에 throws 키워드를 사용하여 예외를 명시합니다. 이렇게 하면 해당 메서드를 호출하는 코드에서 예외 처리를 해야 합니다. 이 방법은 호출한 메서드가 예외 처리에 대한 책임을 가질 때 유용합니다.

public void myMethod() throws IOException, CustomException {
    // 예외 발생 가능한 코드
}

이렇게 하면 myMethod()를 호출하는 코드에서 IOException과 CustomException 처리를 해야 합니다.

반응형

댓글