백엔드/자바

예외 선언하기

ksge7 2020. 8. 11. 04:30

예외 선언하기

메서드에 예외를 선언하는 경우가 있다.

 

이런 경우는 이 예외를 처리하려는 것이 아니라 이 메서드를 호출할 경우 예외에 조심하라는 뜻이다.

 

즉 이 메서드를 호출하려면 선언된 예외를 처리할 수 있는 try - catch 문을 작성하라는 것이다.

 

예외 선언하는 법

일반 메서드를 작성할 때 파라미터 뒤에 'throws'를 붙이고 예외 처리해줄 예외들을 적어준다.

 

각 예외들은 쉼표를 기준으로 여러개를 적어줄 수 있다.

 

접근제어자 + 반환값 + 메서드명 ( ) throws Exception1, Exception2, Exception3....{ };

 

예외 선언한 메서드 사용법

예외를 선언한 메서드를 만드는 이유는 해당 메서드 호출시 예외를 신경써서 처리하라는 뜻이다.

 

즉 이거 호출하려면 try - catch를 꼭 하라고 떠넘기는 것이다.

 

그래서 아래코드처럼 메서드를 호출할 때 try - catch를 적용해야 에러없이 사용할 수 있다.

 

public static void main(String[] args) {

	Test_E A = new Test_E(); // 클래스 'Test_E' 객체 생성
    
    try {  // try 선언
    
    A.test();  // 클래스 'Test_E'의 'test' 메서드 호출
    
    } catch (Exception a) {  // catch에서 Exception 예외 처리
    
    System.out.println("예외 선언 예제2입니다.");
    
    }  
  }

class Test_E {  // 일반 클래스 'Test_E' 선언
	
	void test() throws Exception {  // 메서드 'Exception' 선언
		System.out.println("예외 선언 예제입니다.");
	}
}

 

예외 서로 떠넘기기

메서드에서 예외 선언을 하면 해당 메서드를 호출하면 try - catch를 적용해야된다고 이야기했다.

 

하지만 반대로 메서드에서 먼저 try - catch를 적용하고 그 뒤에 호출하는 방법도 있다.

 

그리고 양쪽에서 서로 모두 예외를 처리할 수도 있다.

 

상황에 따라서 맞는 방법을 찾아서 처리한다.