3

コードが多くの例外をスローし、ハンドルが同じである場合、どちらを選択するのが良いですか?

try{
}catch(ExceptionOne e1)
{
someHandle()
}
catch(ExceptionTwo e2){
someHandle()
}
catch(ExceptionThree e3)
{
someHandle()
}

また

try{
}catch(Exception e1)
{
someHandle()
}

いくつかの本は、例外を発生させるときは、すべての例外を捕まえるのではなく、はっきりとそれを捕まえるようにしてください。

では、どちらが良いですか?

4

2 に答える 2

8

最初の方が良いです。2つ目はすべての例外をキャッチします。これには、キャッチしたくないいくつかの例外が含まれる場合があります。

Java 7にアップグレードする場合は、複数のタイプの例外をキャッチできるcatchブロックを使用できます。これは、よりクリーンなソリューションです。

try {
    // Something that might throw.
}
catch(ExceptionOne | ExceptionTwo | ExceptionThree e) {
    someHandle()
}
于 2012-07-19T00:11:19.297 に答える
-1

例外が何であるかを気にしない場合は、一般的な「例外」をスローするだけです。

try {
    ...
} catch (Exception e) {

  }
于 2012-07-19T00:14:38.830 に答える