| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Graph
- Stack
- Algorithm
- 혼자 공부하는 C언어
- buffer
- C programming
- s
- C 언어 코딩 도장
- JSON
- Serialization
- 이것이 자바다
- stream
- 윤성우의 열혈 자료구조
- 윤성우 열혈자료구조
- 메모리구조
- coding test
- Selection Sorting
- 이스케이프 문자
- 알기쉬운 알고리즘
- list 컬렉션
- insertion sort
- R
- datastructure
- Today
- Total
Engineering Note
[Java] exception handling(예외 처리) 본문
프로그램 에러, 오류
- 프로그램이 실행 중 어떤 원인에 의해서 오작동 하거나 비정상적으로 종료 되는 경우
컴파일 에러
- 컴파일시에 발생하는 에러
런타임 에러
- 실행시에 발생하는 에러
- 런타임 에러는 다시 에러(error)와 예와(exception)으로 구분한다.
- 런타임 error: 프로그램 코드에 의해서 수습될 수 없는 심각한 오류. ex)메모리 부족, 스택오버플로우
- (런차임) exception: 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류. 프로그래머의 적절한 코드로 비정상적 종료를 막을 수 있다.
논리적 에러
- 실행은 되지만, 의도와 다르게 동작하는 것.
예외 클래스의 계층 구조
- 자바는 실행 시 발생할 수 있는 오류를 미리 클래스로 정의했다.
- 모든 예외는 Exception 클래스의 자손이다. 반대로 모든 예외의 최고 조상은 Exception이다.
- Exception 클래스의 자손은 다시, RuntimeException클래스의 자손과 RuntimeException 클래스의 자손이 아닌 클래스로 구분할 수 있다.


RuntimeExeption은 Unchecked Exception라고도 하며, 그 외 Exception을 Checked Exception이라고도 한다.
예외처리(exeption handling) 정의
- 프로그램 실행 시 발생할 수 있는 예기치 못한 예외의 발생에 대비한 코드를 작성하는 것
예외처리 목적
- 예외 발생으로 인한 실행 중인 프로그램의 갑작스런 비정상 종료를 막고, 정상적인 실행상태를 유지할 수 있도록 하는것.
try-catch문
- 예외를 처리위한 구문
- 하나의 try블럭 더음에는 여러 종류의 예외를 처리할 수 있도록 하나 이상의 catch 블럭이 올 수 있다.
- 예외의 종류와 일치하는 catch 블럭이 없으면 예외는 처리되지 않는다.
사용방법
try{
//예외가 발생할 가능성이 있는 코드
}catch (Exception1 e1){
//Exception1이 발생할 경우 이를 처리할 코드
}catch (Exception1 e2){
//Exception2가 발생할 경우, 이를 처리할 코드
}catch (ExceptionN eN){
//ExceptionN이 발생할 경우, 이를 처리할 코드
}
참고 자료
- 자바의 정석(남궁성)
'Programming Language > Java' 카테고리의 다른 글
| [Java] BufferedReader, Reader 객체와 Stream (0) | 2025.07.22 |
|---|---|
| [Java] 직렬화(Serialization) 개념과 직렬화를 하는 이유 (0) | 2025.07.19 |
| [Java] JDK, JRE, JVM 개념 및 Java가 실행되는 원리 (0) | 2025.07.07 |
| [Java] 예외처리와 예외의 종류 (1) | 2025.07.07 |
| [Java] List 컬렉션(ArrayList, LinkedList) (0) | 2025.06.25 |
