티스토리 뷰
프로그래밍/Java
자바 ! 사용자 정의 예외처리 ( Exception, RuntimeException, try ~ catch ~ finally )
나는연어다 2017. 5. 9. 22:53예외처리에 대한 기본적인 공부를 마무리하고
(링크를 통해 예외처리에 대한 기본적인 공부를 하시면 됩니다.)
사용자 정의 예외처리에 대해 실습으로 공부하겠습니다.
사용자 정의 예외를 사용하기 위한 ExceptionTest 클래스
public class ExceptionTest {
// Checked Exception :
// Exception 클래스 상속받은 예외
public void foo(int n) throws MyException {
// foo() 라는 메소드를 호출했을 때
// MyException 예외가 날 수 있으니 처리하라.
// 예외가 발생 될 조건
if (n < 0) {
// 예외 발생!
// 예외 발생 시에 예외 객체를 만들어서 catch문에 던진다.
throw new MyException();
} else {
System.out.println("foo(int): " + n);
}
}
// RuntimeException 클래스를 상속받은 예외는 throws를 반드시 써줄 필요는 없다.
// 하지만 쓰는것이 좋다.
public void goo(int n) throws MyRuntimeException {
if (n < 0) {
throw new MyRuntimeException("음수가 매개변수로 들어 올 수 없다.");
} else {
System.out.println("goo(int): " + n);
}
}
}
사용자 정의 예외(Exception) 클래스 입니다.
public class MyException extends Exception{ // 사용자정의 예외처리를 만들 수 있다.
// 1) getMessage 오버라이딩
// 2) 생성자에서 예외 메세지 입력
@Override
public String getMessage(){
return "매개변수가 음수입니다.";
}
}
사용자 정의 예외(RuntimeException)클래스 입니다.
public class MyRuntimeException extends RuntimeException{
// 예외 메세지를 외부에서 입력 받아 사용한다.
public MyRuntimeException (String errmsg){
super(errmsg);
}
}
사용자 정의 예외(Exception) 클래스를 사용하는 메인(main) 클래스 입니다.
public class ExampleException{
public static void main(String[] args) {
ExceptionTest exceptionTest = new ExceptionTest();
try {
exceptionTest.foo(-10);
// 반드시 예외를 처리해라
// Exception 클래스를 상속한 Checked Exception 이기 때문이다.
} catch (MyException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
System.out.println(e.getMessage());
}
// 예외처리가 된 것이다.
try{
exceptionTest.goo(-1);
}catch(MyRuntimeException e){
System.out.println(e.getMessage());
}
exceptionTest.goo(-1); // 예외처리가 되지 않은 경우
}
}
반응형
LIST
'프로그래밍 > Java' 카테고리의 다른 글
| 자바 ! 제네릭( Generic ) (0) | 2017.05.13 |
|---|---|
| 자바 ! 객체 타입 판별, 배열 ( instanceof , Array, for - each) (0) | 2017.05.10 |
| 자바 ! 예외처리 ( Exception , try ~ catch ~ finally) (0) | 2017.05.08 |
| 자바 ! 다형성 ( Polymorphism , Upcasting , Downcasting ) (0) | 2017.05.05 |
| 자바 ! Object 클래스 ( toString(), equals() 메소드 등..) (0) | 2017.05.01 |
댓글
