예외 처리

JH·2024년 2월 15일

java

목록 보기
11/21

예외 (Exception)

예외는 프로그램 실행 중에 발생하는 정상적이지 않은 상황을 가리킨다. 예를 들어, 0으로 나누기, 배열의 인덱스 초과, 없는 파일을 열려고 시도하는 등의 경우가 예외 상황에 해당한다.

int result = 1 / 0; // ArithmeticException 예외 발생

예외 처리 (Exception Handling)

예외 처리는 프로그램이 예외 상황을 감지하고 그에 따른 적절한 조치를 취하는 과정을 의미한다. Java에서는 try-catch 문을 사용하여 예외를 처리한다.

int a = 0;

try {
    int result = 5 / a; // ArithmeticException 예외 발생 가능성
} catch (ArithmeticException e) {
    // ArithmeticException이 발생했을 때 실행되는 부분
    System.out.println("0으로 나눌 수 없습니다.");
    System.out.println("에러 메시지: " + e.getMessage());
}

위 예시에서는 try 블록 내에서 5 / a 연산을 시도하고 있다. 이 연산은 a가 0일 때 ArithmeticException 예외가 발생할 수 있다. catch 블록에서는 ArithmeticException 예외가 발생했을 때 실행될 코드를 정의한다.

예외 처리는 프로그램의 안정성을 높이고 예상치 못한 오류로부터 프로그램을 보호하는 데 중요한 역할을 한다. 프로그램이 예외 상황에 대비하지 않으면 예외가 발생할 경우 프로그램이 비정상적으로 종료될 수 있다. 따라서 예외 처리는 프로그래머에게 프로그램의 안정성을 유지하는 데 큰 도움을 준다.

try-catch 블록은 예외가 발생할 수 있는 코드를 try 블록 안에 작성하고, 해당 예외를 처리하기 위한 코드를 catch 블록에 작성하는데 사용된다. 이를 통해 프로그램은 예외 상황을 감지하고 그에 따른 적절한 조치를 취할 수 있다. 따라서 예외가 발생하더라도 프로그램이 비정상적으로 종료되는 것을 방지할 수 있다.

finally 블록

finally 블록은 예외의 발생 여부와 관계없이 항상 실행되는 부분이다. 주로 리소스 해제나 정리 작업 등을 수행한다.

try {
    // 예외가 발생할 수도 있는 부분
} catch (예외 case 1) {
    // 예외 case 1이 발생했을 때 실행되는 부분
} finally {
    // 항상 실행되는 부분
    // 리소스 해제나 정리 작업 등을 수행
}

finally 블록은 예외 발생 여부와 관계없이 항상 실행되는 부분이다. 이를 활용하여 파일이나 네트워크 연결 등의 리소스를 해제하거나 정리 작업을 수행할 수 있다. 이는 메모리 누수와 같은 문제를 방지하고 프로그램의 안정성을 높이는 데 도움이 된다.

throw와 throws

  • throw: 예외를 발생시킨다. 예외 객체를 생성하고 해당 예외를 던진다.
  • throws: 메소드에서 발생할 수 있는 예외를 선언한다. 메소드 선언부에 사용되며, 예외를 해당 메소드를 호출한 곳으로 전가한다.
void someMethod() {
    throw new Exception("예외 발생");
}

void anotherMethod() throws Exception {
    // 메소드에서 발생할 수 있는 예외를 선언
}

throw 키워드는 예외를 강제로 발생시키는 데 사용된다. 프로그래머는 예외 상황을 감지하고 특정한 조건에 따라 예외를 발생시킬 수 있다. throws 키워드는 메소드에서 발생할 수 있는 예외를 선언하는데 사용된다. 이를 통해 해당 메소드를 호출하는 쪽에서 예외 처리를 수행할 수 있도록 한다.

profile
발전하는 백엔드 개발자

0개의 댓글