2

Try を減らして Catch を増やすことが、フラックスを制御する良い方法であるかどうかを知る必要があります。これは、例外制御の観点から非常に重要です。

流動的には、何か問題が発生した場合、これは決して続行されるべきではないからです!

コード行を節約しようとしているわけではありません。コード用語で視覚的に理解しやすく、機能的に何かが必要です

Var ix;
Var iy;
Var iz;

try {
    try {
        do something ix;
    } catch (Exception ex1) {
        ex1.printStackTrace();
    }

    try {
        do something iy;
    } catch (Exception ex2) {
        ex2.printStackTrace();
    }

    do something iz;
} catch (Exception ex3) {
    ex3.printStackTrace();
}

また

Var ix;
Var iy;
Var iz;

try {
        do something ix;
        do something iy;
        do something iz;

} catch (Exception ex1) {
    ex1.printStackTrace();
} catch (Exception ex2) {
    ex2.printStackTrace();
} catch (Exception ex3) {
    ex3.printStackTrace();
}
4

6 に答える 6

2

あなたの質問に対する唯一の正しい答えはありません。場合によります。他の回答からわかるように、最初と 2 番目のコードは実行方法が異なります (2 番目の例では一部の操作がスキップされる可能性があります)。以下に焦点を当てる必要があります。

  • キャッチしている例外のタイプ (これらの例外は異なるものですか?異なる方法で処理しますか?)、
  • 例外をどのように処理するか、
  • コードの他の部分に影響する例外の 1 つです。
  • 2 つ以上の例外が 1 つの catch ステートメントでキャッチされるか、

特定の状況に応じて、各ソリューションを検討する必要があります。

于 2013-10-17T14:40:00.820 に答える