每次库打开某个文件时,第三方库都会导致 AccessViolationException。我正在尝试遍历数千个文件,因此捕获异常,将项目添加到不打开的文件列表中并继续会很有用。但是,异常不会被 catch(Exception e) 块捕获,也不会被特定的 catch(AccessViolationException ave) 块捕获。
在对另一个问题的评论中,John Saunders 建议可以捕获 AccessViolationException,但不应该这样做。
程序员要做什么?
每次库打开某个文件时,第三方库都会导致 AccessViolationException。我正在尝试遍历数千个文件,因此捕获异常,将项目添加到不打开的文件列表中并继续会很有用。但是,异常不会被 catch(Exception e) 块捕获,也不会被特定的 catch(AccessViolationException ave) 块捕获。
在对另一个问题的评论中,John Saunders 建议可以捕获 AccessViolationException,但不应该这样做。
程序员要做什么?
您可能不想捕获一个AccessViolationException
,唯一的原因是您不能保证异常没有破坏您的应用程序的状态。
默认情况下,由于上述原因,执行不会到达 catch 块。如果你明确地想要处理进程破坏异常,你需要用HandleProcessCorruptedStateExceptions
属性来装饰你的类。