출처: https://bumcrush.tistory.com/182 [맑음때때로 여름]
Throwable 클래스의 주요 메서드
메서드 설명
public String getMessage() Throwable 객체의 자세한 메시지를 반환한다.
public String toString() Throwable 객체의 간단한 메시지를 반환한다.
public void printStackTrace() Throwable 객체와 추적 정보를 콘솔 뷰에 출력한다.

프로그래머가 직접 정의하는 예외의 상황

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package FirstJava;
 
public class ExcepthionThrow {
 
    public static void main(String[] args) {
        
        
        try {
            
            
            // 프로그래머가 강제로 예외를 발생시킨다.
            // 예외 클래스의 인스턴스 생성
            Exception e = new Exception("강제로 발생한 예외");
            // 예외발생
            throw e;
            
        }catch (Exception e){
            System.out.println(e.getMessage());
            e.printStackTrace(); // 예외발생 순서
        }
        System.out.println("프로그램 종료");
    }
 
}
 
cs

예제1)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package FirstJava;
 
public class AgeInputException extends Exception{
    
    int age;
    
    public AgeInputException(int age) {
        super("유효하지 않은 나이가 입력되었습니다");
        this.age=age;
    }
 
    @Override
    public String toString() {
        return "AgeInputException [age=" + age + ", getMessage()=" + getMessage() + "]";
    }
 
 
 
}
 
cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package FirstJava;
 
import java.util.Scanner;
 
public class ProgrammerDefineException {
 
    public static void main(String[] args) throws AgeInputException {
 
        System.out.println("나이를 입력하세요");
        try {
        int age = readAge();
        System.out.println("나이는 "+ age + "세 입니다.");
        } catch(AgeInputException e) {
            System.out.println(e); // tostring()
        }
    
 
    }
 
    public static int readAge() throws AgeInputException{
        //throws AgeInputException
        //readAge 메서드 내에서 발생하는 예외중에
        //AgeInputException 타입의 예외가 발생하면
        //readAge()메서드를 호출한 쪽으로 전달
        Scanner sc = new Scanner(System.in);
        int age=sc.nextInt();
        // 논리적인 오류에 대한 예외 발생
        if(age<=0) {
            AgeInputException ae=new AgeInputException(age);
            throw ae;
        }
        return age;
    }
}
 
cs

 

+ Recent posts