반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 복합 키
- 티스토리챌린지
- entity
- devpi
- 이메일 본인인증
- 토큰
- 널 허용
- ispresent
- string.repeat()
- jpa repository
- java
- Token
- email api 구현
- 스프링
- mutablemap
- embededid
- javamailsender
- map
- 스프링 부트
- 객체지향
- 오블완
- Spring
- 자바
- string?
- JPA
- 코틀린
- kotlin
- JPQL
- Spring Boot
- @embededid
Archives
- Today
- Total
DeveloPiano
[Java] 예외 처리의 이해 : try-catch와 throws의 차이점 본문
반응형
자바에서는 예외 처리를 위해 try-catch 블록과 throws 키워드를 사용할 수 있습니다. 이 두 방법은 예외를 다루는 방식이 다르며, 각각의 사용은 상황에 따라 결정됩니다. 이 글에서는 try-catch와 throws의 차이점을 탐구하고, try-catch의 사용 필요성을 자세히 설명하겠습니다.
try-catch와 throws의 기본 개념
- try-catch
- try-catch 블록은 예외가 발생할 수 있는 코드를 try 블록 안에 포함시키고, 해당 예외를 처리할 코드를 catch 블록에 작성합니다. 이 방법은 예외를 메소드 내에서 즉각적으로 처리하고, 메소드 사용자나 호출자에게 예외가 발생했음을 알리지 않습니다.
- throws
- 메소드 선언에 throws 키워드를 사용하는 경우, 메소드 내에서 처리하지 않고 예외를 호출한 메소드로 전파합니다. 이 방법은 메소드를 사용하는 쪽에서 예외 처리의 책임을 지게 만듭니다.
예외 처리 방식의 선택 기준
- try-catch 사용 시점 : 메소드 내에서 예외를 즉시 처리하고 정상 흐름을 회복하고자 할 때 사용합니다. 이 방법은 예외 처리를 메소드 내부에서 완결지어 사용자나 호출자가 예외의 복잡성을 신경 쓸 필요가 없도록 할 때 적합합니다.
- throws 사용 시점 : 메소드가 예외를 직접 처리하지 않고, 호출자가 예외를 처리하는 방법을 결정하게 하려는 경우에 사용합니다. 이는 메소드 사용자가 예외 처리 방법을 유연하게 선택할 수 있도록 하며, 특히 API나 라이브러리를 설계할 때 유용합니다.
try-catch의 필요성 및 중요성
- 프로그램의 안정성 유지 : try-catch를 사용하면 예외 상황에서도 프로그램이 중단되지 않고 계속 실행될 수 있습니다.
- 예외 처리의 캡슐화 : try-catch는 예외 처리 로직을 메소드 내부에서 완결지어, 예외 처리 로직을 외부에 노출하지 않고 캡슐화할 수 있습니다.
- 사용자 정의 예외 처리 로직 구현 : 특정 예외 상황에 대한 사용자 정의 반응을 구현할 수 있습니다. 예를 들어, 오류 로깅, 사용자에게 오류 정보 제공, 대체 실행 경로 제공 등이 가능합니다.
public void processFile(String fileName) throws IOException {
FileInputStream file = null;
try {
file = new FileInputStream(fileName);
// 파일 처리 로직
} catch (FileNotFoundException e) {
System.out.println("파일이 존재하지 않습니다.");
} finally {
if (file != null) {
file.close();
}
}
}
이 예제에서는 FileNotFoundException을 try-catch로 처리하고 있습니다. 이렇게 하면 파일이 존재하지 않는 경우에도 메소드의 실행 흐름이 중단되지 않고, finally 블록에서 파일 리소스를 정리할 수 있습니다. IOException은 throws로 선언되어 있어, 파일을 닫는 과정에서 발생할 수 있는 예외는 메소드를 호출한 쪽에서 처리하도록 위임하고 있습니다.
결론
try-catch와 throws는 자바 예외 처리의 두 가지 중요한 방법입니다. 각각의 사용은 예외의 종류, 예외 처리의 책임 소재, 그리고 프로그램의 설계 방향에 따라 달라집니다. try-catch를 통한 예외 처리는 프로그램의 안정성과 사용자 경험을 향상시키는 데 기여하며, 예외 처리 로직을 메소드 내부에 캡슐화하여 복잡성을 관리합니다.
반응형
'Develop > Java' 카테고리의 다른 글
[Java] JPA 엔티티 관계 매핑 : @OneToOne, @ManyToOne, @ManyToMany (0) | 2024.08.15 |
---|---|
[Java] Class와 Record : 정의, 특징, 그리고 차이점 이해하기 (1) | 2024.08.09 |
[Java] super 키워드 사용법 (0) | 2024.08.03 |
[Java] JPA 엔티티 : 외래키 설정 vs ID 저장 방식 비교 (1) | 2024.08.03 |
[Java] @RequiredArgsConstructor와 @NoArgsConstructor : 생성자를 자동으로 관리하는 방법 (0) | 2024.07.31 |