0

try-catch-finallyそこで、ネストされたブロックの動作について疑問に思っていました。

finallyつまり、最初のブロック内に別のtry-catch-finallyブロックがあり、内側のブロックで例外が発生した場合はどうなるでしょうかfinally??

例外は伝搬されますか? で、どこかに引っかかるの?

どこで例外をキャッチする必要がありますか? 内側のfinallyブロックで、または伝播している場合は、上位のコードからキャッチする必要がありますか?

例:

static bool Func()
{
    try
    {}
    catch
    {}
    finally
    {
        try
        {}
        catch
        {}
        finally
        {
           throw new ApplicationException();
        }
    }
}
4

1 に答える 1

-1

依存します。内側の例外で例外を処理できますが、処理したくない場合は、外側の Try Catch が例外を「受け取る」ように、単に THROW することができます。

詳細な例については、こちらを参照してください。

于 2013-05-30T14:58:55.920 に答える