8장
1. 에러와 예외

에러(Error): 시스템 수준의 심각한 오류
프로그램이 오작동하거나 비정상적으로 종료되는 상황에서 발생
예외(Exception): 프로그램 실행 중 예측 가능한 오류
Checked Exception: 컴파일러가 예외 처리를 강제
파일 입출력, 네트워크 연결 등과 같은 상황에서 발생
예외를 강제함으로써 프로그램의 안정성을 확보
Ex. VirtualMachine Error, MemoryOutOfError 등
Unchecked Exception: 컴파일러가 예외 처리를 강제하지 않음
프로그램의 로직 오류나 예측 불가능한 상황에 의해 발생
Ex. ArthimeticException, NullPointerException 등
2. 예외 클래스의 계층 구조

3. 예외 처리
예외 처리(error handling): 프로그램의 비정상 종료를 막는 코드를 작성하는 것
/*
==========================================================================
1. try-catch 문
==========================================================================
*/
try {
// 예외가 발생할 가능성이 있는 문장
}catch (Exception e) {
// Exception이 발생했을 경우 처리하는 문장
}
/*
==========================================================================
2. try-catch finally 문
==========================================================================
*/
try {
// 예외가 발생할 가능성이 있는 문장
}catch (Exception e) {
// Exception이 발생했을 경우 처리하는 문장
} finally {
// 예외의 발생 여부와 관계없이 항상 수행하는 문장
// finally는 맨 마지막에 위치
}
/*
==========================================================================
3. 멀티 catch 블럭
==========================================================================
*/
try {
// 예외가 발생할 가능성이 있는 문장
}catch (ExceptionA | ExceptionB e) {
// Exception이 발생했을 경우 처리하는 문장
}
/*
==========================================================================
4. 메서드 예외처리
==========================================================================
*/
void method() throws Exception1, Exception2, ..., ExceptionN {
// 메서드의 내용
}
/*
==========================================================================
5. 사용자 정의 예외 클래스
==========================================================================
*/
class UserException extends Exception {
UserException(String msg) {
super(msg);
}
}
참고 자료
자바의 정석 - 도우출판
Last updated