프로그램 오류
- 컴파일 에러 : 컴파일 시에 발생하는 에러
- 런타임 에러 : 실행 시에 발생하는 에러
- 논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 것
에러와 예외
- 에러 : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
- 예외 : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류
예외 클래스의 계층 구조
- RuntimeException클래스와 그 하위클래스들
- 프로그래머의 실수로 발생하는 예외
- Exception클래스와 그 하위클래스들 (RuntimeException클래스와 하위클래스들 제외)
- 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외
예외처리 하기 : try-catch문
: 프로그램 실행 시 발생할 수 있는 예기치 못한 예외의 발생에 대비한 코드를 작성하는 것이다.
프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것이 목적이다.
예외가 발생했을 때 생성되는 예외 클래스의 인스턴스에는 발생한 예외에 대한 정보가 담겨있는데, 이때 getMessage()와 printStackTrace()를 통해서 이 정보들을 얻을 수 있다.
- printStackTrace() : 예외발생 당시의 호출스택에 있었던 메서드의 정보와 예외 메시지를 화면에 출력한다.
- getMessage() : 발생한 예외 클래스의 인스턴스에 저장된 메시지를 얻을 수 있다.
예외 발생시키기
- 먼저 연산자 new를 이용해서 발생시키려는 예외 클래스의 객체를 만든 다음,
Exception e = new Exception("고의로 발생시킨 에러");
- 키워드 throw를 이용해서 예외를 발생시킨다.
throw e;
finally 블럭
: finally 블럭은 try-catch문과 함께 예외의 발생 여부에 상관없이 실행되어야 할 코드를 포함시킬 목적으로 사용된다.
try {
// 예외가 발생할 가능성이 있는 문장들을 넣는다.
} catch {
// 예외처리를 위한 문장을 적는다.
} finally {
// 예외 발생 여부에 관계없이 항상 수행되어야 하는 문장들을 넣는다.
// finally 블럭은 try-catch문의 맨 마지막에 위치해야 한다.
}
'Book > 자바의 정석' 카테고리의 다른 글
[자바의 정석] Chapter 11. 컬렉션 프레임워크 - Set, Map (0) | 2023.07.14 |
---|---|
[자바의 정석] Chapter 11. 컬렉션 프레임워크 - List (0) | 2023.07.14 |
[자바의 정석] Chapter 7. 객체지향 프로그래밍 II - 추상메서드, 인터페이스 (0) | 2023.07.14 |
[자바의 정석] Chapter 7. 객체지향 프로그래밍 II - 오버라이딩, 접근 제어자, 다형성 (0) | 2023.07.14 |
[자바의 정석] Chapter 6. 객체지향 프로그래밍 I - 오버로딩, 생성자 (0) | 2023.07.14 |