[Java] Ch.8 예외처리

yoons(이윤서)·2024년 6월 30일

[Java] 자바의 정석

목록 보기
8/14

👉🏻 이 글은 자바의 정석(3판) Chapter8을 공부하며 쓴 글입니다.

📌 예외처리(exception handling)

📖 프로그램 오류

  1. 컴파일 에러
    컴파일 시에 발생하는 오류
  2. 런타임 에러
    실행 시 발생되는 에러
    • 에러(error) : 코드에 의해 수습될 수 없는 심각한 오류
      Ex. 메모리부족(OutOfMemoryError).....
    • 예외(exeception) : 코드에 의해 수정될 수 있는 다소 미약한 오류
  3. 논리적 에러
    실행은 되지만, 의도와 다르게 동작하는 것
  • 모든 예외의 최고 조상은 Exception 클래스

📖 예외처리하기

: 갑작스러운 비정상 종료를 막고정상적인 실행 상태를 유지할 수 있도록 한다.

try - catch - finally

try {
	//예외가 발생할 가능성이 있는 문장들
} catch(Exception_예외명 e1){
	//예외처리를 위한 문장
} catch(Exception_예외명 e2){
	//예외처리를 위한 문장
} finally {
	//예외 발생 여부에 상관없이 실행되어야 할 문장들
}

Exception은 모든 예외 처리 가능.

  • 멀티 catch 블럭
    JDK1.7부터 여러 catch블럭을 |기호를 이용해서 하나의 catch블럭으로 합칠 수 있게 되었다. but, 상속관계는 합칠 수 없다.

📖 예외 발생시키기

  1. 먼저, 연산자 new를 이용해서 발생시키려는 예외클래스의 객체를 만든 다음
Exception e = new Exception("고의로 발생시킴");
// 위 메세지는 e.getMessage()로 얻을 수 있다.
  1. 키워드 throw를 이용해서 예외를 발생시킨다.
throw e;
// throw new Exception("고의로 발생시킴"); 로 합칠 수 있다.

📖 메서드에 예외 선언

void method( ) throws 예외1, 예외2, ... {
// 메서드 내용
}

  • 자손 타입의 예외까지도 발생할 수 있다.

+ 자동 자원 반환 try - with - resources문

📖 사용자정의 예외

class MyException extends Exception {
	MyException(String msg) {	//문자열을 매개변수로 받는 생성자
    	super(msg);	//조상인 Exception클래스의 생성자 호출
    }
}

+ 예외 되던지기

+ 연결된 예외


profile
개발공부하는 잠만보

0개의 댓글