일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 이분탐색
- 캐시 스탬피드
- 트라이 자료구조
- 타임아웃
- 스택
- 자바
- 베타락
- id생성
- 이진탐색
- session인증
- 낙관적 락
- DP
- 다중 서버
- 알고리즘
- JPA
- prg패턴
- 외부 서비스 장애
- 백준
- thundering herd
- 슬라이스 테스트
- 예외처리
- 벌크헤드패턴
- ddl-auto
- 비관적 락
- java
- Stack
- expired key
- Entity Manager
- queue
- BFS
- Today
- Total
Coding 01
Checked Exception과 Unchecked Exception 본문
예외 처리에 대한 글을 작성하려고 한다.
자바에서 예외 처리는 크게 2가지 유형의 예외를 제공한다.
모든 예외는 Throwable클래스를 상속받고, 여기서 다시 Error과 Exception으로 나뉜다.
여기서 Checked Exception과 Unchecked Exception은 Exception에 속한다.
Error는 시스템 레벨의 심각한 문제를 나타내고 애플리케이션에서 처리를 하지 않는다.
Exception은 애플리케이션 레벨에서 처리를 하고, 여기서 Checked와 Unchecked로 나뉜다.
이렇게 구분된 이유는 예외의 성격에 따라 처리 방식이 다르기 때문이다.
Checked와 Unchecked에 대해 간단히 알아보면,
Checked
Exception 클래스를 직접 상속하는 예외이다.
파일의 읽기/쓰기, 네트워크 통신, DB연결과 같은 경우
반드시 try-catch로 처리하거나, throws로 예외를 선언해야 한다.
개발자가 반드시 인지하고 처리를 해야 하므로 컴파일 시점에서 처리되어 반드시 처리해야 한다.
대포적인 예로는 IOException, SQLException, ClassNotFoundException이 있다.
Unchecked
RuntimeException 클래스를 상속하는 예외이다.
프로그래밍 오류로 인한 예외
null참조, index초과, 부적절한 형변환과 같은 경우
미리 방지하는 것이 좋고, 실행 중에도 확인이 가능하다.
대표적인 예로는 NullPointerException, ArrayIndexOutOfBoundsException이 있다.
Error와 Exception
Error는 주로 JVM에서 발생한느 심각한 문제로, OutOfMemmoryError, StackOverflowError 등 시스템 레벨에서 발생하는 오류이다.
일반적으로 프로그램에서는 처리하지 않으며, 회복이 어려운 오류에 속한다.
반면, Exception은 위에서 설명한 대로 프로그램 실행 중 발생할 수 있는 오류 상황이다.
회복 가능성이 있으며, 프로그램 내에서 예외 처리를 통해 오류 상황을 제어할 수 있다.
코드 작성 시 예외 처리를 할 때 Checked와 Unchecked에 대해 생각해 보며 예외 처리를 시스템을 활용한다면, 오류 상황을 체계적으로 다룰 수 있고, 프로그램의 안정성을 높일 수 있을 것이다.
'기술면접' 카테고리의 다른 글
데이터베이스 인덱스란 무엇인가 (0) | 2024.12.05 |
---|---|
일급 컬렉션에 대해서 (0) | 2024.12.04 |
JPA의 N + 1 문제 (0) | 2024.12.02 |
로그와 메트릭이 무엇인가 (1) | 2024.11.30 |
엔티티 매니저란 무엇인가 (1) | 2024.11.29 |