関数がExceptionをスローする場合、関数の戻り値の型はExceptionになる可能性があります

夕方に:

機能があるとしましょう

private RuntimeException foo() {
    return new RuntimeException();
}

例外はスローされず、次のように処理できます

throw foo();

または戻り値を変数に割り当てることができます

RuntimeException e = foo();

ただし、関数は次のように変更できます。

private RuntimeException foo() {
    throw new RuntimeException();
}

そして、それでもコンパイルされ、前の例のように使用することができます。または、同様に呼び出すことができfoo();、例外がスローされます。

しかし、なぜそれをRuntimeException返さずに代わりにスローするメソッドの戻り型として指定できるのですか?この場合、スロー動作とリターン動作の間に関係はありますか?

Exception(またはより一般的にはThrowable)戻り値の型を持っていると、if / elseステートメントのようなすべての決定分岐で確実にスロー/戻りされることに気付きましたしかし、これのより実用的な使用法または推奨されるものはありますか?

スイーパー:

のでthrow、すぐに方法ストップの実行を行いますと、制御は呼び出し元に渡され、それがどのようなあなたのメソッドの戻りが重要ではありません。あなたが返す入力する内容は関係ありませんが、そのタイプはなりません、あなたが最初の行に(起こった何か間違ったことを示す)例外をスローしているため、返されます。

例外をスローすると、引数が無効である、引数がnullであるなどの問題が発生したため、コンパイラーはこれを許可します。このようなエラー条件では、コンパイラはメソッドが値を正常に返すことを期待していません。明らかに問題が発生した場合、メソッドは計算しようとしていたものを何も計算できないため、それは理にかなっています。

したがって、「すべてのコードパスは値を返す必要がある」というフレーズは、実際には「すべてのコードパスが値を返すか、またはスローする必要がある」と言う必要がありThrowableます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

BobJenkinsHash関数の結果が負になる可能性はありますか?

分類Dev

注釈付き関数に渡される引数のタイプが指定されたものと一致しない場合、Pythonがエラーをスローする可能性はありますか?

分類Dev

戻り値を気にしない場合、どの戻り値の型で関数を宣言する必要がありますか?

分類Dev

短絡評価によって関数が呼び出されなくなる可能性がある場合のgcc警告フラグはありますか?

分類Dev

型以外のテンプレートパラメータを持つクラスが与えられた場合、引数の値の任意のペアについて、クラスが相互にフレンドになる可能性はありますか?

分類Dev

iOS「コントロールが非void関数の終わりに達する可能性があります」

分類Dev

関数の戻り値の型は符号なしですが、エラーの場合は-1を返します

分類Dev

UMLクラス図:関数が関数呼び出しを返す場合、関数の戻り値の型はどうなりますか?

分類Dev

Javaは、複数の戻り値の型の可能性がある関数の3項演算子を呼び出すことを明示的に禁止していますか?

分類Dev

threading.Eventのset()またはclear()関数はどのような場合でも失敗する可能性があります

分類Dev

関数宣言または関数プロトタイプはプログラムの動作に影響を与える可能性がありますか

分類Dev

'戻り値の型'がタグである関数は何をしますか?

分類Dev

char 5:エラー:制御が非void関数の終わりに達する可能性があります

分類Dev

戻り値が列挙型の場合、関数はnullを返します

分類Dev

戻り値と非戻り値のstd ::関数がキャスト可能であるのはなぜですか?

分類Dev

未定義の変数はどのようにして型エラーをスローする可能性がありますか?

分類Dev

関数はReactの子としては無効です。これは、レンダリングからではなくコンポーネントを返す場合に発生する可能性があります

分類Dev

関数はReactの子としては無効です。これは、レンダーから<Component>ではなくComponentを返す場合に発生する可能性があります

分類Dev

関数はReactの子としては無効です。これは、レンダーから<Component>ではなくComponentを返す場合に発生する可能性があります

分類Dev

解凍するのに十分な値がない可能性がある場合は、リスト値を複数の変数にきれいに割り当てます

分類Dev

xquery関数「functx:between-inclusive」を使用する場合、最初の引数が2つの異なる属性値から取得される可能性はありますか?

分類Dev

typescript NodeJsのeslintエラーを修正する方法: '関数に戻り値の型がありません'

分類Dev

複数の可能性がある場合、どのタイプを割り当てる必要がありますか?

分類Dev

関数は、すべてのコードパスで値を返すわけではありません。結果が使用されると、実行時にnull参照例外が発生する可能性があります

分類Dev

W1035:関数「Take」の戻り値が未定義の可能性があります

分類Dev

引数がないのに、なぜvue計算関数がパラメーターの割り当てを破壊する可能性があるのですか?

分類Dev

標準のルールでは、戻り値の型にプレースホルダー型が含まれる末尾の戻り値の型を持つ関数は「auto」である必要があると指定されています。

分類Dev

戻り値の型が異なる複数の非同期関数を呼び出すと、Promise.allが型エラーをスローします

分類Dev

コンパイルエラー「この関数または変数は安全でない可能性があります」(strcpy)を修正する方法

Related 関連記事

  1. 1

    BobJenkinsHash関数の結果が負になる可能性はありますか?

  2. 2

    注釈付き関数に渡される引数のタイプが指定されたものと一致しない場合、Pythonがエラーをスローする可能性はありますか?

  3. 3

    戻り値を気にしない場合、どの戻り値の型で関数を宣言する必要がありますか?

  4. 4

    短絡評価によって関数が呼び出されなくなる可能性がある場合のgcc警告フラグはありますか?

  5. 5

    型以外のテンプレートパラメータを持つクラスが与えられた場合、引数の値の任意のペアについて、クラスが相互にフレンドになる可能性はありますか?

  6. 6

    iOS「コントロールが非void関数の終わりに達する可能性があります」

  7. 7

    関数の戻り値の型は符号なしですが、エラーの場合は-1を返します

  8. 8

    UMLクラス図:関数が関数呼び出しを返す場合、関数の戻り値の型はどうなりますか?

  9. 9

    Javaは、複数の戻り値の型の可能性がある関数の3項演算子を呼び出すことを明示的に禁止していますか?

  10. 10

    threading.Eventのset()またはclear()関数はどのような場合でも失敗する可能性があります

  11. 11

    関数宣言または関数プロトタイプはプログラムの動作に影響を与える可能性がありますか

  12. 12

    '戻り値の型'がタグである関数は何をしますか?

  13. 13

    char 5:エラー:制御が非void関数の終わりに達する可能性があります

  14. 14

    戻り値が列挙型の場合、関数はnullを返します

  15. 15

    戻り値と非戻り値のstd ::関数がキャスト可能であるのはなぜですか?

  16. 16

    未定義の変数はどのようにして型エラーをスローする可能性がありますか?

  17. 17

    関数はReactの子としては無効です。これは、レンダリングからではなくコンポーネントを返す場合に発生する可能性があります

  18. 18

    関数はReactの子としては無効です。これは、レンダーから<Component>ではなくComponentを返す場合に発生する可能性があります

  19. 19

    関数はReactの子としては無効です。これは、レンダーから<Component>ではなくComponentを返す場合に発生する可能性があります

  20. 20

    解凍するのに十分な値がない可能性がある場合は、リスト値を複数の変数にきれいに割り当てます

  21. 21

    xquery関数「functx:between-inclusive」を使用する場合、最初の引数が2つの異なる属性値から取得される可能性はありますか?

  22. 22

    typescript NodeJsのeslintエラーを修正する方法: '関数に戻り値の型がありません'

  23. 23

    複数の可能性がある場合、どのタイプを割り当てる必要がありますか?

  24. 24

    関数は、すべてのコードパスで値を返すわけではありません。結果が使用されると、実行時にnull参照例外が発生する可能性があります

  25. 25

    W1035:関数「Take」の戻り値が未定義の可能性があります

  26. 26

    引数がないのに、なぜvue計算関数がパラメーターの割り当てを破壊する可能性があるのですか?

  27. 27

    標準のルールでは、戻り値の型にプレースホルダー型が含まれる末尾の戻り値の型を持つ関数は「auto」である必要があると指定されています。

  28. 28

    戻り値の型が異なる複数の非同期関数を呼び出すと、Promise.allが型エラーをスローします

  29. 29

    コンパイルエラー「この関数または変数は安全でない可能性があります」(strcpy)を修正する方法

ホットタグ

アーカイブ