8장

1. 에러와 예외

png
  • 에러(Error): 시스템 수준의 심각한 오류

    • 프로그램이 오작동하거나 비정상적으로 종료되는 상황에서 발생

  • 예외(Exception): 프로그램 실행 중 예측 가능한 오류

    • Checked Exception: 컴파일러가 예외 처리를 강제

      • 파일 입출력, 네트워크 연결 등과 같은 상황에서 발생

      • 예외를 강제함으로써 프로그램의 안정성을 확보

      • Ex. VirtualMachine Error, MemoryOutOfError 등

    • Unchecked Exception: 컴파일러가 예외 처리를 강제하지 않음

      • 프로그램의 로직 오류나 예측 불가능한 상황에 의해 발생

      • Ex. ArthimeticException, NullPointerException 등

2. 예외 클래스의 계층 구조

png

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