アマン・バーマ:
私は、ネストされた読ん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
ループにそれが発生した最初の時間を終了します。