1. 사용자정의 예외 메세지
# 기본문법
- 개발자에 의해 논리적 오류로 취급해야하는 코드에서 해당 코드의 호출부로 예외발생사실을 표시하기 위해 활용함.
- 예외가 발생해야하는 위치에 throw 키워드를 사용하여 정의한다.
throw new 예외클래스명("예외메세지")
public class Ex05 {
public static void main(String[] args) {
System.out.println("프로그램시작");
int score=186;
try {
grade(score);//주로 메서드 호출부에서 예외처리를 한다.
} catch (ArithmeticException e) {//정상범위의 점수가 아닌 경우에 수행할 작업.
//System.out.println("점수입력 오류: "+score);
System.out.println(e.getMessage()+score);//점수 입력 오류입니다. 점수: 186
}
System.out.println("프로그램종료");
}//---------------메인메서드-------------------
//학점 계산을 위해 score 전달받아 학점 출력하는 grade메서드
public static void grade(int score) throws ArithmeticException{
// 실제 점수의 범위는 0~100 사이임. 그 외의 점수는 정상적인 입력값이 아니다.
if(score>=0 && score<=100) {
System.out.println("정상적인 점수입니다.");
} else {
throw new ArithmeticException("점수 입력 오류입니다. 점수: ");
}
}
}
2. 사용자 정의 예외 클래스
- 예외클래스 또한 개발자가 별도로 정의할 수 있다.
- 반드시 Exception이나 Exception계열클래스를 상속받아 정의해야함.
- 해당 [사용자정의예외클래스] 내부의 생성자에 [super클래스]로 예외메시지를 전달하여 초기화 한다.
- 출력값은 [사용자 정의 예외 메시지]를 설정했을 때와 다를 바 없지만 개발자가 보기에 예외명이 더 직관적임.
public class Ex06 {
public static void main(String[] args) {
System.out.println("프로그램 시작");
int score=185;
try {
grade(score);
} catch (Exception e) {
System.out.println(e.getMessage()+score);
}
System.out.println("프로그램 종료");
}//----------메인메서드----------------
public static void grade(int score) throws InvalidScoreException{
if (score>=0&&score<=100) {
System.out.println("정상적인 점수의 범위입니다.");
} else {
throw new InvalidScoreException("점수입력 오류. 점수: ");
}
}//----------grade() 메서드 정의부----------------
}//---------Ex06클래스 끝-------------------------------------
class InvalidScoreException extends Exception{
public InvalidScoreException(String msg){
super(msg);// 매개변수로 받은 msg를 exception클래스에 전달함. --> 예외메시지를 초기화한다.
}
}
'개발자 양성과정 필기노트 > JAVA' 카테고리의 다른 글
자바 I/O - 데이터 입/출력 하는 방법 (0) | 2021.11.14 |
---|---|
멀티쓰레딩 (0) | 2021.11.13 |
데이터 형식화 클래스 (0) | 2021.11.13 |
BigInteger / BigDecimal (0) | 2021.11.13 |
Enum (0) | 2021.11.13 |
댓글