본문 바로가기

IT일반과목/java

예외처리 6

사용자 정의 예외

예외를 만들때 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개 만들었는데 이녀석 호출할때 메세지 받아주는 걸 만들었다.

//출력하고자 하는 메세지를 넣어주면된다.




}


===================================================================
package jongkyu.test;

public class ExceptionTest2 extends Exception {
//이건 checked이기 때문에 Exception을 상속받는다.
//Exception을 상속받아서 만들면 checked가 된다.
public ExceptionTest2() {
super();
}//기본 생성자
public ExceptionTest2(String message) {
super(message);
}//생성자 오버로딩한것이다.
}


'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