<예외처리 테스트>
[Parent]
package pkg4.dto;
import java.io.IOException;
public class Parent {
// IOException을 던질 가능성이 있는 메서드 3개
public void method1() throws IOException{}
public void method2() throws IOException{}
public void method3() throws IOException{}
}
[Child]
package pkg4.dto;
import java.io.EOFException;
import java.io.IOException;
public class Child extends Parent {
// 부모랑 예외 처리 구문이 같으면 문제 없음!
//@Override
//public void method1() throws IOException {}
// 부모 예외 -> 자식 예외로 변경
// -> 컴파일 오류 없음 == 오버라이딩 성립
@Override
public void method1() throws EOFException {}
// 부모 예외 -> 더 위에 부모 예외로 변경
// -> 컴파일 에러 발생 ! == 오버라이딩 성립 X
// @Override
// public void method2() throws Exception {}
// 예외 처리 구문 제거
// => 오버라이딩 성립
@Override
public void method3() {
// 왜 되는 거지?
// -> 오버라이딩한 코드에서 예외가 발생 안 할수도 있어서!!
}
}
사용자 정의 예외란?
Java에서 제공하지 않는 사용자만의 예외를 만들어 사용하는 것
[만드는 방법]
아무 Exception이나 상속 받으면 완성
(내부 코드는 필요한 대로 작성)
* Unchecked Exception을 만들고 싶으면
RuntimeException 또는 그 자식을 상속 받아라!!!!
#예제
[UserException]
package pkg4.exception;
/**
* 사용자 정의 예외
* - Java에서 제공하지 않는 사용자만의 예외를
* 만들어 사용할 수 있다!!
*
* [만드는 방법]
* 아무 Exception이나 상속 받으면 완성
* (내부 코드는 필요한 대로 작성)
*
* * Unchecked Exception을 만들고 싶으면
* RuntimeException 또는 그 자식을 상속 받아라!!!!
*/
public class UserException extends Exception {
public UserException() {// 기본 생성자
super("[사용자 정의 예외 발생]"); // 부모 생성자
// -> 예외 객체 생성 시 보여질 기본 메시지
}
public UserException(String message) { //매개 변수 생성자
super(message);
}
}
[Run]
package pkg4.run;
import pkg4.exception.UserException;
public class UserDefinedExceptionRun {
public static void main(String[] args) {
try {
// 사용자 정의 예외 강제 발생
throw new UserException("발생시 전달한 메시지");
}catch(UserException e) {
System.out.println("----catch문----");
System.out.println(e.getMessage());
}
}
}
#결과

'BackEnd > Java' 카테고리의 다른 글
| [Java]입출력(IO) Stream (0) | 2024.08.12 |
|---|---|
| [Java]입출력(IO) (0) | 2024.08.12 |
| [Java]예외처리(Exception) throw와 throws 구분하기 (0) | 2024.08.12 |
| [Java]예외처리(Exception) try~catch문 예제 (0) | 2024.08.12 |
| [Java]예외처리(Exception) (0) | 2024.08.12 |