捕获AccessViolationException

时间:2012-06-06 14:02:50

标签: c# c#-4.0 access-violation

每次库打开某个文件时,第三方库都会导致AccessViolationException。我正在尝试遍历数千个文件,因此捕获异常会很有用,将项目添加到不打开的文件列表中并继续。但是,异常不会被catch(异常e)块捕获,也不会被特定的catch(AccessViolationException ave)块捕获。

在对另一个question的评论中,John Saunders建议可以捕获AccessViolationException,但不应该这样做。

程序员要做什么?

1 个答案:

答案 0 :(得分:3)

您可能不希望捕获AccessViolationException,原因是您不能保证异常没有损坏您的应用程序状态。

默认情况下,由于上述原因,执行不会到达catch块。如果您明确要处理进程损坏的异常,则需要使用HandleProcessCorruptedStateExceptions属性修饰您的类。