2016-10-24 2 views
-2

최근에 다음 코드 조각을 발견했습니다. Java - 메서드 반환 형식 및 예외 throws 부분의 예외로

public class ErrorException { 
    public Exception odd() throws Error { 
     return new Exception(); 
    } 
    public static void main(String[] args) throws Error { 
     new ErrorException().odd(); 
    } 
} 

내 질문

은 다음과 같습니다

  1. 자바는이 선언의 일부를 throw 예외를 처리하기 위해 특별히 제작 된 경우 메소드 리턴 타입에 예외를 허용하는 이유?

  2. 오류가 호출 메서드에서 처리되지 않을 때 메서드 선언의 throws 부분에서 오류 클래스가 허용되는 이유는 무엇입니까?

  3. 메소드 선언의 예외 유형 반환 메소드 또는 예외 오류가 유용한 특정 시나리오가 있습니까?

미리 감사드립니다.

+1

1. 예외는 Java의 다른 객체와 마찬가지로 객체이기 때문에. 2.이 질문은 잘못된 가정 ("메서드를 호출하여 오류를 처리 할 수 ​​없음")을 기반으로합니다. 3. 문맥 정보를 기반으로 사용자 지정 예외의 특정 하위 클래스를 만들어야하는 경우 반환하는 것이 유용 할 수 있습니다 예외 – rmlan

+0

['SQLException # getNextException'] (https://docs.oracle.com/javase/8/docs/api/java/sql/SQLException.html#getNextException--)이 떠오른다. ['Throwable # getCause'] (https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html#getCause--)는 'Throwable'을 반환합니다. – bradimus

답변

0

의견에 감사드립니다.

https://docs.oracle.com/javase/tutorial/essential/exceptions/catch.html로 돌아가서 다음 발견

각 캐치 블록 인수로 나타내는 예외의 종류를 처리하는 예외 핸들러이다. 예외 유형 인 ExceptionType은 핸들러가 처리 할 수있는 예외 유형을 선언하며 Throwable 클래스에서 상속받은 클래스의 이름이어야합니다.