なぜJavaのは、try文を入れ子にしているのでしょうか?

アマン・バーマ:

私は、ネストされた読んtry- catch文と私は助けることが、ネストされた使用の実際のポイントは何か不思議ことはできませんかtryインナーの内容はtry、外に既にあるtry、と例外がキャッチされる場合、外側にはtry- catchそれを処理します。なぜ内部使いますかtry

例えば:

コード1:

try 
{
    Statement A;
    Statement B;
    try
    {
        Statement C;
        Statement D;
    }
    catch(CException e) { ... }
    catch(DException e) { ... }
}
catch(AException e) { ... }
catch(BException e) { ... }

コード2:

try 
{
    Statement A;
    Statement B;

    Statement C;
    Statement D;
}
catch(AException e) { ... }
catch(BException e) { ... }
catch(CException e) { ... }
catch(DException e) { ... }

私が間違っているが、これらの2つのコードスニペットは、上記と同じタスクを実行していないなら、私を修正?

pkpnd:

あなたは、ループを終了せずに例外を複数回キャッチするために、内側の試みの周りのループを持つことができます。

try {
    for (int i = 0; i < 10; i++) {
        try {
            someOperationThatOftenFails();
        } catch (SomeCommonException e) {
            ...
        }
    }
} catch (SomeRareFatalException e) {
    ...
}

このシナリオでは、入れ子になったのtryブロックが引くの唯一の方法であるSomeCommonExceptionループを終了せずに複数回、だけでなく、原因となるSomeRareFatalExceptionループにそれが発生した最初の時間を終了します。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=225346&siteId=1