1. 프로그램 오류
1. 에러 : 코드에 의해서 수습될 수 없는 심각한 오류
- 컴파일 에러(컴파일 시)
- 런타임 에러(실행 시)
- 논리적 에러(의도와 다르게 동작)
2. 예외 : 코드에 의해서 수습될 수 있는 다소 미약한 오류
2. 예외 클래스의 계층구조
Object > Throwable > Exception > RuntimeException, IOException, ...
Object > Throwable > Error > OutOfMemoryError, ...
Exception > IOException, ClassNotFoundException, ...
Exception > RuntimeException > ArithmeticException, ClassCastException, NullPointerException, ... IndexOutOfBoundException
3. 종류
Exception 클래스들 : 외적 요인 (사용자의 실수)
RuntimeException 클래스들 : 프로그래머의 실수
4. catch 문
1. printStackTrace()
: 예외발생 당시의 호출스택(Call Stack)에 있었던 메서드의 정보와 예외 메시지를 화면에 출력
2. getMessage()
: 발생한 예외클래스의 인스턴스에 저장된 메시지를 얻을 수 있음
5. 멀티 catch블록
catch( ExceptionA | ExceptionB e)
- JDK 1.7부터
6. 예외 발생시키기
: 프로그래머가 고의로 발생시킴
1. new를 이용
Exception e = new Exception("고의 발생");
2. throw 이용
throw e;
-> 1과 2를 합쳐서 throw new Exception("고의 발생"); 도 가능
7. finally 블럭
: 예외의 발생여부에 상관없이 실행되어야 할 코드를 포함시킬 목적으로 사용됨
- try, catch, finally 순서
8. 사용자 정의 예외 만들기
class MyException extends Exception {}
- 생성자에 정의
- 아래서 catch (MyException e)로 잡기
9. 예외 다시 던지기 (exception re-thorowing)
: 예외를 처리한 후에 인위적으로 다시 발생시키는 방법
- catch문에서 throw e;
- 반환값이 있는 return 문의 경우, catch블록에도 return 문 필요
10. 연결된 예외(chained exception)
: 한 예외가 다른 예외를 발생시킬 수 있음
- 여러 가지 예외를 하나의 큰 분류의 예외로 묶어서 다루기 위해서
- 원인 예외 : 예외 A 가 예외 B를 발생시킨 경우, A
Throwable initCause(Throwable cause) 지정된 예외를 원인 예외로 등록
Throwable getCause() : 원인 예외를 반환
출처 : 자바의 정석 기초편 1
도서관에서 발견한 책인데 설명이 친절하고 설명이 잘 되어있어서 좋았습니다.
기초편은 1편과 2편으로 나뉩니다.
1편을 읽으면서 다시 참고하고 싶은 내용을 정리했습니다.
'기타 > 도서' 카테고리의 다른 글
[자바의 정석] 5. Java 객체지향 프로그래밍 (0) | 2023.11.21 |
---|---|
[자바의 정석] 4. 배열 (0) | 2023.11.21 |
[자바의 정석] 3. 타입 변환, 이름 붙은 반복문 (0) | 2023.11.21 |
[자바의 정석] 2. 이클립스 단축키, 워크스페이스 초기화 (0) | 2023.11.20 |
[자바의 정석] 1. java.lang 패키지와 유용한 클래스 (0) | 2023.11.18 |