사용자 정의 예외
예외를 만들때 checked, unchecked로 할지 기억하면 된다.
상속
Exception 클래스를 상속받아서 만들면 checked가 된다.
RuntimeException 클래스를 상속받아서 만들면 unchecked가 된다.
Runtime Exception->사용자가 실수한 오류이다.
Exception을 상속받은 녀석은 반드시 try catch를 해야된다는 것이다.
Checked Exception -> 반드시 개발자가 처리해야 되는 것->Exception상속->파일의값을읽어오는
데파일이없으면 어떻할꺼야 이런거라 무조건 처리해줘야된다.
Unchecked Exception -> 개발자가 소스코드상에서 다룰필요가 없는것->RuntimeException 상속
->개발자가 한 사소한실수여서강제화안되는것이다. ->그치만 Throwable의 Error일 경우엔 우리
가 처리를 못하는 것이다.->unchecked가 발생하면 내가 인지를 해서 고쳐야되는 것이다.
================================================================
public void div(int su1,int su2) {
if(su2==0) {
//throw new ExceptionTest1("0으로는 나눌수 없음.");
//여기에 메세지가 그대로 나온다
//아무메세지를 안넣을 경우 아무것도 안뜬다.
//RuntimeException 클래스를 상속받아서 만들었기 때문에 try catch를 안써도된다.
try {
throw new ExceptionTest2("0으로는 나눌수 없음");
} catch (ExceptionTest2 e) {
// TODO Auto-generated catch block
//e.printStackTrace();
e.getMessage();
}
//이거같은경우엔 Exception을 상속받았기때문에 checked가 되서 try~catch를 해야된다.
}
System.out.println(su1/su2);
}
=============================================================
package jongkyu.test;
public class ExceptionTest1 extends RuntimeException {
//RuntimeException을 상속받아 unchecked가 되기 위해서이다.
//RuntimeException을 상속받아서 만들면 unchecked가된다.
public ExceptionTest1() {
super();//부모껄 갖고오겠다.
}//생성자 만들었다.
public ExceptionTest1(String message) {
super(message);
}//생성자 오버로딩을 하여 매게변수를 주었다.
//생성자 2개 만들었는데 이녀석 호출할때 메세지 받아주는 걸 만들었다.
//출력하고자 하는 메세지를 넣어주면된다.
}
'IT일반과목 > java' 카테고리의 다른 글
Object 클래스에 대해서 (0) | 2018.08.01 |
---|---|
예외처리7 (0) | 2018.08.01 |
집공부 (0) | 2018.07.31 |
JAVA 네트워크 (0) | 2018.07.31 |
예외처리 5 student라는곳에 예외처리를 해서 만들어보기 (0) | 2018.07.31 |