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 |
'JAVA > basic' 카테고리의 다른 글
[ 컬렉션 Collection<E> ] 컬렉션 프레임워크 (0) | 2020.10.22 |
---|---|
generic / 제네릭 (0) | 2020.10.22 |
예외처리 / Exception (0) | 2020.10.21 |
예외처리 / try-catch-finally (0) | 2020.10.21 |
인터페이스 / interface / implements (0) | 2020.10.20 |
추상클래스 / abstract class (0) | 2020.10.20 |
오버라이딩 Override / Overriding & 다형성 (0) | 2020.10.16 |