Phi*_*Atz 1 c# sybase exception try-catch access-violation
我遇到一个数据库调用问题,AccessViolationException当我调用时会抛出一个数据库调用ExecuteNonQuery().调用包含在一个try-catch块中,但异常永远不会被捕获.相反,我在Windows事件日志中得到一个关于它的条目.有没有办法在代码中捕获此异常?
IDbCommand cmd = ...
cmd.CommandText = "...";
try
{
var results = command.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.Writeline("Caught exception: " + ex.Message);
}
Run Code Online (Sandbox Code Playgroud)
ExecuteNonQuery()AccessViolationException如果底层驱动程序在纯模式下崩溃,则可以抛出 从.NET Framework 4开始,托管代码不再捕获catch块中的这些类型的异常.你可以在这里阅读更多相关信息.
解决方案是在App.config 中将<legacyCorruptedStateExceptionsPolicy> 元素的enabled属性设置为true,或者将[System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute] 属性应用于包含try-catch块的方法.