BackEnd/Java

[Java]예외처리(exception) 사용자 정의 예외

Hojung7 2024. 8. 12. 14:40

<예외처리 테스트>

[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