728x90

<예외의 상속>

예외(Exception)도 클래스라 object부터 상속이 쭉 내려져옴

예외도 클래스로 자바 구현되어있음

ex) NumberFormatException, NullPointerException

 

Exception은 모든 예외 클래스의 최상위 클래스

 

<예외Exception 분류>

크게 두가지로 분류하며, 이외에도 다양한 subclass가 많이 있다

1)checked Exception

2)unchecked Exception

  Checked Exception : 예외처리가 필수
  Unchecked Exception : 예외처리 선택

 Unchecked Exception의 조상 Runtime Exception
 Checked Exception의 조상은 Exception

예외 처리할 필요가 없게 extends를 Runtime Exception로 변경

 

<예외처리 방법>

  1. throws
  2. try ~ catch
  3. finally

 

※ e.printStackTrace()  : 발생한 에러에 대한 정보를 출력해주는 메소드

에러가 뭐 때문에 어디서 왜 났는지 알려줌

일반적으로 .printStackTrace() 많이씀

1) throws

예외를 위임

나를 호출한 메소드에게 예외를 던져주는 것

예외를 내가 처리하지 않고 넘겨주는 것

ex) close()가 close()를 선언한 곳에 예외를 던지는 것

호출한 곳 예 : sc.close();

 

2) try ~ catch

예외를 직접 처리한다

익셉션 오류가 뜨는건 처리하라고 받은 예외를 받기만하고 처리하지 않아서 나는 것

try : 익셉션이 발생할 수 있는 코드를 기술하는 부분. 예외없는 코드도 들어갈 수 있음

catch : 실제로 발생한 예외에 대해서 어떻게 처리할지 기술하는 부분

try    
    Exception이 발생할 수 있는 코드를 기술하는 부분
catch (예외종류 변수선언)
  	실제로 발생한 예외에 대해서 어떻게 처리할지 기술하는 부분

예시코드

ThrowsTest tt = new ThrowsTest();
	try {
		tt.methodA();
	} catch (IOException e) { // (예외종류, 레퍼런스변수 선언 : e)
		e.printStrackTrace();
	} finally {
		System.out.println("종료");
	}

 

3) finally

예외(Exception) 발생 여부와 상관없이 무조건 실행되는 코드 작성

 


 

<사용자 정의 예외(Exception)>

자바에서 만들어놓은 클래스 말고

내가 만든 클래스(사용자 정의 클래스)처럼 내가 만든 예외를 사용자 정의 예외라고 부른다

 

예외를 상속 받는다

public class MyException extends Exception {

extends Exception

여기서 부모는 자바 안에 있는 Exception class

 

사용자 정의 예외 : 꼭 작성해야할 것들

1)기본생성자

2)스트링 하나만 받는 매개변수 생성자

 

※ 매개변수 있는 생성자가 있어야하는 이유 ※

에러 오른쪽에 에러에 대한 상세 설명(ex:곧 수업 끝나는 에러)을 넣어주기 위해서 String타입으로 매개변수 있는 생성자가 필요한 것

어떤 에러인지 알려주기 싫으면 매개변수 안넣어줘도 된다

728x90
반응형
728x90

 

기능이 실패했을 경우 예외처리

 <Checked Exception & Unchecked Exception>

  Checked Exception : 예외처리가 필수
  Unchecked Exception : 예외처리 선택

 Unchecked Exception의 조상 Runtime Exception
 Checked Exception의 조상은 Exception

예외 처리할 필요가 없게 extends를 Runtime Exception로 변경

package com.kh.Spring.member.model.exception;

public class MemberException extends RuntimeException {

	// Checked Exception & Unchecked Exception
	// 		Checked Exception : 예외처리가 필수
	// 		Unchecked Exception : 예외처리 선택
	
	// Unchecked Exception의 조상 Runtime Exception
	// Checked Exception의 조상은 Exception
	
	// 예외 처리할 필요가 없게 extends를 Runtime Exception로 변경
	
	public MemberException() {}
	public MemberException(String msg) {
		super(msg);
	}
	
}
728x90
반응형

+ Recent posts