2016-10-24 8 views
-2

最近、私は次のコードを見つけました。 Java - メソッドの戻り値の型としての例外と宣言のスロー部分のエラー

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

私の質問

は次のとおりです。

  1. Javaは、宣言の一部をスローした例外を処理するために特別に作成されたときにメソッドの戻り値の型の例外を許可するのはなぜ?

  2. エラーが呼び出しメソッドによって決して処理されない場合、メソッド宣言のスロー部分でエラークラスが許可されるのはなぜですか?

  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に戻って、以下のが見つかりました:

各catchブロックは、その引数で指定された例外のタイプを処理する例外ハンドラです。引数型ExceptionTypeは、ハンドラが処理できる例外の型を宣言します。Throwableクラスから継承するクラスの名前である必要があります。

関連する問題