Java의 예외 처리는 프로그램이 예상치 못한 런타임 오류나 예외 조건을 적절하게 처리할 수 있도록 하는 메커니즘입니다. Java 예외 처리의 두 가지 주요 구성 요소는 try-catch 블록과 throws 절입니다.
1. Try-Catch Block :
try-catch 블록은 예외가 발생할 수 있는 코드 섹션을 묶는 데 사용됩니다. 이는 두 부분으로 구성됩니다.
- Try Block
예외를 일으킬 수 있는 코드는 try 블록 안에 위치합니다.
try 블록 내에서 예외가 발생하면 예외 개체를 생성합니다.
- Catch Block :
catch 블록은 예외를 처리하는 데 사용됩니다. 포착할 수 있는 예외 유형을 지정합니다.
여러 개의 catch 블록이 단일 try 블록 뒤에 따라와 다양한 유형의 예외를 처리할 수 있습니다.
try 블록에서 발생한 예외 유형에 따라 적절한 catch 블록이 실행됩니다.
예:
2. Throws 절:
throws 절은 메소드 시그니처에서 메소드가 특정 유형의 예외를 발생시킬 수 있음을 선언하는 데 사용됩니다. 예외를 처리하지 않습니다. 오히려 처리 책임을 호출 메서드에 위임하거나 예외를 호출 스택 위로 전파합니다.
예:
public void someMethod() throws CustomException {
// Code that may throw CustomException
if (someCondition) {
throw new CustomException("This is a custom exception");
}
}
주요 차이점:
책임:
try-catch: 예외가 발생한 블록 내에서 로컬로 예외를 처리합니다.
throws: 메소드가 예외를 발생시킬 수 있지만 처리하지는 않음을 선언합니다.
사용법:
try-catch: 예외가 발생한 지점에서 예외를 처리하는 데 사용됩니다.
throws: 메소드 시그니처에 사용되어 메소드가 특정 예외를 발생시킬 수 있음을 나타냅니다.
여러 예외 처리:
try-catch: 별도의 catch 블록에서 다양한 유형의 예외 처리를 지원합니다.
throws: 메소드가 던질 수 있는 예외 유형을 선언합니다.
흐름 제어:
try-catch: 로컬 흐름 제어를 도입하고 예외를 처리한 후에도 프로그램이 계속 실행될 수 있도록 합니다.
throws: 예외 처리 책임을 호출 메서드에 넘깁니다.
각 사용 시기:
- 다음과 같은 경우 try-catch를 사용하세요
로컬 수준에서 예외를 처리하고 프로그램 실행을 계속하려고 합니다.
다양한 유형의 예외에는 다양한 처리 메커니즘이 필요합니다.
- 다음과 같은 경우 throws를 사용하세요.
메소드가 특정 유형의 예외를 처리하지 않고 발생시킬 수 있음을 선언하려고 합니다.
예외 처리 책임을 호출 메서드에 위임하거나 예외를 호출 스택 위로 전파하려고 합니다.
많은 경우 'try-catch'와 'throws'의 조합이 사용됩니다. 여기서 메소드는 'throws' 절에서 특정 예외를 선언하고 'try-catch' 블록을 사용하여 로컬로 다른 예외를 처리할 수 있습니다. 이는 Java의 예외 처리에 대한 유연하고 효과적인 접근 방식을 허용합니다.
'Programming > Java' 카테고리의 다른 글
JVM의 주요기능 (1) | 2023.12.30 |
---|---|
JMM(Java Memory Model)이 개발자에게 미치는 영향 (1) | 2023.12.29 |
synchronized 키워드와 java.util.concurrent 사용 간의 차이점 (0) | 2023.12.28 |
Java의 ArrayList와 LinkedList 비교: 올바른 데이터 구조 선택 (1) | 2023.12.22 |
자바로 배우는 객체지향 프로그래밍: 캡슐화, 상속, 다형성, 추상화의 핵심 (0) | 2023.12.21 |