티스토리 뷰
프로그래밍/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 |
댓글