728x90
반응형

try-catch 구문은 프로그램 실행 중 예외가 발생할 가능성이 있는 코드를 감싸는 구문입니다. try 블록에는 예외가 발생할 가능성이 있는 코드를 작성하고, 예외가 발생하면 catch 블록에서 예외를 처리합니다.

try-catch 구문의 기본 문법은 다음과 같습니다.

try {
    // 예외가 발생할 가능성이 있는 코드
} catch (ExceptionType1 e1) {
    // 예외1 처리 코드
} catch (ExceptionType2 e2) {
    // 예외2 처리 코드
} catch (ExceptionType3 e3) {
    // 예외3 처리 코드
} finally {
    // 예외 발생 여부에 관계없이 항상 실행되는 코드
}

 

위 구문에서 try 블록 내에서 예외가 발생하면, 해당 예외를 처리하는 catch 블록이 실행됩니다. 여러 개의 catch 블록을 사용하여 예외의 종류에 따라 다르게 처리할 수 있습니다.

마지막으로 finally 블록은 예외 발생 여부에 관계없이 항상 실행되는 코드입니다. 예외 발생 시 처리할 코드나 리소스를 해제하는 코드 등을 작성합니다.

 

 finally 블록은 생략해도 상관은 없습니다.


그러나 finally 블록은 보통 자원을 해제하는 등의 정리 작업을 수행하기 위해 사용됩니다. 예를 들어 파일을 열어 작업을 수행한 후에는 finally 블록에서 파일을 닫는 코드를 작성하여 파일을 안전하게 닫을 수 있습니다.

그렇기 때문에 finally 블록을 생략하면 자원 누수 등의 문제가 발생할 수 있으므로, finally 블록을 꼭 작성하는 것이 좋습니다.



예를 들어, 다음은 숫자를 나누는 예제 코드입니다.

int a = 10;
int b = 0;

try {
    int c = a / b;
    System.out.println(c);
} catch (ArithmeticException e) {
    System.out.println("0으로 나눌 수 없습니다.");
} finally {
    System.out.println("프로그램을 종료합니다.");
}

위 코드에서는 try 블록 내에서 a를 b로 나누려고 하면 예외가 발생할 가능성이 있습니다. 이를 catch 블록에서 ArithmeticException 예외를 처리하고, finally 블록에서 프로그램을 종료하기 전에 항상 출력되는 메시지를 출력합니다.

실행 결과는 다음과 같습니다.

0으로 나눌 수 없습니다.
프로그램을 종료합니다.

따라서 try-catch 구문을 사용하여 예외 처리를 함으로써 프로그램이 비정상적으로 종료되는 것을 방지하고, 안정성을 높일 수 있습니다.

 

Java에서 예외 처리를 위한 Exception 클래스와 그 하위 클래스들이 존재합니다.

 catch 블록에서 처리할 예외 클래스는 try 블록에서 예외가 발생할 수 있는 클래스와 일치해야 합니다. 예외 처리를 위한 주요 예외 클래스는 다음과 같습니다.

1. Exception 클래스: 모든 예외 클래스의 최상위 클래스입니다.
2. RuntimeException 클래스: 프로그램의 오류나 버그에 의해 발생하는 예외입니다. try-catch 구문을 사용하지 않아도 컴파일러에서 오류가 발생하지 않습니다.
3. IOException 클래스: 입출력 작업 중 발생하는 예외입니다.
4. SQLException 클래스: 데이터베이스 연결과 관련된 예외입니다.
5. NullPointerException 클래스: 객체 참조가 null인 상태에서 객체의 메서드를 호출하려고 할 때 발생하는 예외입니다.


이 외에도 다양한 예외 클래스가 존재합니다. 예를 들어, FileNotFoundException 클래스는 파일이 존재하지 않을 때 발생하는 예외를 처리합니다. 따라서 try-catch 구문을 사용할 때, 발생할 가능성이 있는 예외의 종류를 파악하고 적절한 예외 클래스를 사용하여 catch 블록을 작성해야 합니다.

728x90
반응형

+ Recent posts