我目前正在研究C# / .NET的可靠性特性和异常处理
这些尤其是带有的HandleProcessCorruptedStateExceptions
属性和CERPrepareConstrainedRegions
。
现在我正在阅读该SecureString
课程的参考源代码,因为这是一个非常安全的地方,即使在特殊情况下也要保持数据加密,并发现类似这样的地方:
[HandleProcessCorruptedStateExceptions]
//...
RuntimeHelpers.PrepareConstrainedRegions();
try
{
Unprotect();
// ...
}
catch(Exception)
{
Protect();
throw;
}
finally
{
Protect();
// ...
}
catch
阻塞的原因是什么?finally
块不足以重新保护数据吗?
或者那些损坏的状态异常是否只会catch
在之后影响和终止应用程序?