[Java 소스] 사용자 정의 예외 클래스
//EHException.java
//사용자 정의 예외 클래스
public class EHException extends Exception {
int value;
public EHException(String msg, int value){
super(msg);
this.value = value;
}
public int getValue(){
return value;
}
}
//사용자 정의 예외 클래스 정의 예
import java.util.Scanner;
public class Program {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
try{
int n=0;
System.out.println("피보나치 수열을 구할 수 있습니다.");
System.out.print("원하는 항:");
n = scanner.nextInt();
int value = Fibonacci(n);
System.out.println("Fibbonacci("+n+")="+value);
}
catch(EHException ex){
System.out.println("예외 발생("+ex.getValue()+")");
System.out.println(ex.toString());
}
finally{
System.out.println("피보나치 수열 사용을 마칩니다.");
}
}
static int Fibonacci(int n) throws EHException{
if(n<=0){
throw new EHException("요청 항은 양수여야 합니다.",n);
}
if((n==1)||(n==2)){
return 1;
}
return Fibonacci(n-1)+Fibonacci(n-2);
}
}
실행 결과 (-3을 입력했을 때)
피보나치 수열을 구할 수 있습니다.
원하는 항:-3
예외 발생(-3)
EHException: 요청 항은 양수여야 합니다.
피보나치 수열 사용을 마칩니다.
본문
'Java > 디딤돌 Java 언어 Part2' 카테고리의 다른 글
[Java 소스] 제네릭 메서드 (0) | 2017.01.20 |
---|---|
[Java 소스] 정수 동적 배열, 제네릭 동적 배열 (0) | 2017.01.20 |
[Java 소스] finally 문 사용 예 (0) | 2017.01.19 |
[Java 소스] throw 문 사용 예 (0) | 2017.01.19 |
[Java 소스] 기반 형식 예외 개체를 잡는 catch 블록을 뒤에 두었을 때 (0) | 2017.01.11 |