Visual Studio 2015意外地破坏了处理的异常

Erw*_*yer 5 c# exception-handling exception break visual-studio-2015

一张图片值得一提,以下是可能的:

Visual Studio 2015打破它不应该

可以看出,Visual Studio的2015年(最新版本)断裂,而Common Language Runtime ExceptionsException Settings未被选中,Enable Just My CodeTools > Options > Debugging被选中,并将异常清晰地处理(在try/catch块内).

该行失败并导致中断是对外部API的调用(这有点错误,因此是try/catch块).

我错过了一些可以证明休息的理由或者这是一个错误吗?我认为这个其他问题会提供一些见解,但遗憾的是在这里没有帮助(处理异常因此我们不需要启用其他Continue When Unhandled in User Code选项.

gna*_*lck 1

这个例外有一个特殊情况,我猜这也适用于这里。来自文档

AccessViolationException 和 try/catch 块

从 .NET Framework 4 开始,如果公共语言运行时引发的 AccessViolationException 异常发生在公共语言运行时保留的内存之外,则结构化异常处理程序中的 catch 语句不会处理该异常。要处理此类 AccessViolationException 异常,您应该将 HandleProcessCorruptedStateExceptionsAttribute 属性应用于引发异常的方法。此更改不会影响用户代码抛出的 AccessViolationException 异常,该异常可以继续由 catch 语句捕获。对于为早期版本的 .NET Framework 编写的代码,如果您希望在 .NET Framework 4 上重新编译和运行而不进行修改,您可以将该元素添加到应用程序的配置文件中。请注意,如果您已为 AppDomain.FirstChanceException 或 AppDomain.UnhandledException 事件定义了处理程序,您还可以收到异常通知。

正如文档所说,解决方案是将HandleProcessCorruptedStateExceptionsAttribute添加到方法中Start()。如果不可能(例如,这是通过库提供的),我猜您可以添加一个包装调用的方法并将属性添加到该包装方法。