現在、 C# / .NETの信頼性機能と例外処理について調べています。
これらは、特にHandleProcessCorruptedStateExceptions
属性とCERですPrepareConstrainedRegions
。
SecureString
これは、例外的な状況でもデータを暗号化することが非常に重要な場所であるため、クラスの参照ソース コードを読んでいたところ、次のような場所が見つかりました。
[HandleProcessCorruptedStateExceptions]
//...
RuntimeHelpers.PrepareConstrainedRegions();
try
{
Unprotect();
// ...
}
catch(Exception)
{
Protect();
throw;
}
finally
{
Protect();
// ...
}
catch
ブロックの理由は何ですか?finally
ブロックはデータを再保護するのに十分ではありませんか?
それとも、これらの破損状態の例外はcatch
、後でアプリケーションに影響を与えて終了するだけでしょうか?