タイトルが私の質問全体を説明していると思います。
またはfinally
から来た場合、ステートメントでコードを実行する場所を知りたいです。try
catch
出来ますか?
さて、最も簡単なアプローチは次のとおりです。
bool success = false;
try
{
...
// This should be the last statement in the try block
success = true;
}
catch(...)
{
...
}
finally
{
if (success)
{
...
}
}
これは特定の言語機能ではありません。本当に顕著な状況 (基本的には非同期例外) を除いて、への割り当て後に例外が発生しないという事実を利用しているだけですsuccess
。
であることは、ブロックのいずれかが実行されたことを意味するものではないことに注意しsuccess
てください。キャッチしていない例外がスローされた可能性があります (または、ブロックの終了前に戻った可能性があります)。基本的には、「ブロックの終わりに達した」ことを示すだけです。通常はこれで十分です。false
catch
try
try