- 예외 처리 - 사용자 정의 예외
1. 사용자 정의 예외 클래스?
- 기존에 정의된 예외 클래스를 상속받아 새로운 예외 클래스를 정의한다.
- Checked Exception : Exception 클래스를 상속받아 정의
- Unchecked Exception : RuntimeExeption 클래스를 상속받아 정의
- 사용자 정의 예외 클래스 이름은 Exception으로 끝나는 것이 좋다.
- 사용자 정의 예외 클래스는 필드, 생성자, 메소드를 포함할 수 있으나 대부분 생성자만을 포함한다.
- 기본 생성자 & String 타입의 매개변수를 갖는 생성자
- String 타입의 매개 변수에 예외 발생 원인을 알려주는 메시지를 담아 전달한다.
2. 실습
- 점수가 70점 미만인 과목은 Exception을 강제로 발생시켜보자.
- 나머지 공부에 대한 사용자 정의 예외 클래스를 이용하여 예외를 처리한다.
- 과목의 정보는 ArrayList를 이용하여 관리한다.
- Subject Class
package chapter12;
public class Subject {
private String name;
private int score;
public Subject(String name, int score) {
super();
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
}
- ExamFailTest Class
package chapter12;
import java.util.ArrayList;
public class ExamFailTest {
public static void main(String[] args) {
ArrayList<Subject> subjectList = new ArrayList<Subject>();
subjectList.add(new Subject("역사", 86));
subjectList.add(new Subject("지리", 65));
subjectList.add(new Subject("생물", 58));
subjectList.add(new Subject("물리", 76));
System.out.println("나머지 공부를 해야하는 과목은?");
for(Subject subject : subjectList) {
try {
if(subject.getScore() < 70) {
throw new ExamFailException(subject.getName() + " (" +
subject.getScore() + "점)");
}
} catch(ExamFailException e) {
System.out.println(e.getMessage());
}
}
}
}
- ExamFailException Class
package chapter12;
public class ExamFailException extends Exception {
public ExamFailException() {
}
public ExamFailException(String message) {
super(message);
}
}
- 사용자 정의 예외 처리 함수는 Exception을 상속받아서 사용한다.
'Web Development > Java' 카테고리의 다른 글
예외 처리 - throws 구문 (0) | 2022.10.11 |
---|---|
예외처리 try ~ catch ~ finally 구문 (0) | 2022.10.11 |
HashMap (0) | 2022.10.08 |
List Collection (0) | 2022.10.08 |