일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- log
- JavaScript
- kubernetes
- docker
- java
- Spring
- kubectl
- AWS
- Network
- airflow
- helm
- Vision
- Python
- Kafka
- Packet
- tcp
- OS
- kubeadm
- Operating System
- zookeeper
- CVAT
- PostgreSQL
- aws s3
- CSV
- jvm
- EC2
- ip
- AWS Redshift
- MAC address
- grafana
- Today
- Total
JUST WRITE
Checked and Unchecked Exceptions 본문
이 글은 Baeldung 사이트 'Checked and Unchecked Exceptions'를 해석, 정리한 글입니다.
Exception은 크게 Checked Exception과 Unchecked Exception으로 나누어 진다.
Checked Exception
Checked Exception은 일반적으로 Program 통제 밖에 있는 Error를 나타낸다.
Java는 Compile 시점에 Checked Exception을 확인한다.
Java에서 Checked Exception은 IOException, SQLException, ParseException 등이 있다.
throws 키워드를 써서 Checked Exception을 선언해야 한다.
private static void checkedExceptionWithThrows() throws FileNotFoundException {
File file = new File("not_existing_file.txt");
FileInputStream stream = new FileInputStream(file);
}
아니면 try-catch Block으로 Checked Exception을 처리할 수 있다.
private static void checkedExceptionWithTryCatch() {
File file = new File("not_existing_file.txt");
try {
FileInputStream stream = new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
Unchecked Exception
Program에서 Unchecked Exception이 발생한다면 내부 Logic에서 Error가 발생했다는 것을 알 수 있다.
Java는 Compile 시점에 Unchecked Exception을 확인하지 않는다.
Method에 throws 키워드를 써서 Unchecked Exception을 선언하지 않아도 된다.
Java에서 Unchecked Exception은 NullPointerException, IllegalArgumentException 등이 있다.
RuntimeException은 모든 Unchecked Exception의 Super Class이다.
Unchecked Exception을 Custom으로 만들 때 RuntimeException을 상속해서 만든다.
public class NullOrEmptyException extends RuntimeException {
public NullOrEmptyException(String errorMessage) {
super(errorMessage);
}
}
Java Documentation에서 Checked Exception, Unchecked Exception을 언제 사용할지 가이드를 제시한다.
If a client can reasonably be expected to recover from an exception, make it a checked exception. If a client cannot do anything to recover from the exception, make it an unchecked exception.
Checked Exception | Unchecked Exception | |
확인 시점 | Compile 시점 | Runtime 시점 |
처리 여부 | 반드시 예외 처리 | 명시적으로 하지 않아도 된다. |
Transaction 처리 | 예외 발생 시 rollback 하지 않음. | 예외 발생 시 rollback 해야 함. |
종류 | IOException, ClassNotFoundException 등 | NullPointerException, ClassCaseException 등 |
'Programing > Java' 카테고리의 다른 글
Utility Class (0) | 2021.12.31 |
---|---|
JRE (0) | 2021.11.28 |
JVM (0) | 2021.11.27 |
Serialization (0) | 2021.11.20 |
Optional (0) | 2021.10.31 |