Exception
에러와 예외
- 먼저 예외란 입력값에 대한 처리가 불가능하거나, 값이 잘못되어 정상적인 프로그램 흐름에 어긋나는 거을 의미한다.
- 자바에서 예외는 개발자가 직접 처리할 수 있기 때문에 미리 예측하여 핸들링할 수 있다.
- 에러는 시스템에 비정상적인 상황에서 발생하기 때문에 개발자가 애플리케이션 코드에서 처리할 수 없는 경우가 많다.
- Java에서 모든 예외는 Exception 클래스를 상속받는다. 크게 두 가지로 나눌 수 있는데 Checked Exception과 Unchecked Exception이다.
- Checked Exception이란 컴파일 타임에 컴파일러가 예외를 미리 알려줄 수 있는 예외를 의미한다. 그렇기에 체크드 예외를 처리하지 않으면 컴파일 오류가 발생한다.
- UnChecked Exception이 아닌(Runtime Exception을 상속받지 않는) 예외는 모두 Checked Exception이라고 정의하기도 한다.
- UnChecked Exception은 RuntimeException을 상속받는 예외이다.
- Checked Exception이란 컴파일 타임에 컴파일러가 예외를 미리 알려줄 수 있는 예외를 의미한다. 그렇기에 체크드 예외를 처리하지 않으면 컴파일 오류가 발생한다.
예외 처리
예외 복구
- 예외 상황을 파악하고 문제를 해결하여 정상상태로 되돌리는 방법
- 예외를 잡아서 일정시간 대기하고 다시 재시도를 반복한다.
- 최대 재시도 횟수를 초과하면 예외를 발생시킨다.
예외처리 회피
- 예외처리를 직접 담당하지않고 해당 함수를 호출한 쪽으로 넘긴다.
- 예외처리가 필요하다면 적절히 처리하고 던지는 것이 좋다.
- 그냥 예외를 던지는 것은 무책임한 처리이다.
예외 전환
- 조금 더 명확한 의미를 전달하기 위해 보다 적절한 의미의 예외로 변경한다.
- Checked Exception을 Unchecked Exception으로 포장하여 던지기도 한다.
'Java' 카테고리의 다른 글
Garbage Collector (정의와 종류) (0) | 2022.06.06 |
---|---|
Java String이란? (StringBuilder, StringBuffer, String Iterning, String pool) (0) | 2022.06.04 |
JVM (Java Virtual Machine)과 메모리 영역 (0) | 2022.06.02 |
Effective Java - Item 42. 익명 클래스보다는 람다를 사용하라 (0) | 2021.06.19 |
Java 8, 9, 10, 11 무슨 일이 일어나고 있는가? (0) | 2020.09.21 |