繁体   English   中英

Visual Studio 2013捕获未处理的异常

[英]Visual Studio 2013 catching unhandled exceptions

几天前,我们的新Visual Studio 2013副本已发送给我们。 我之前和2010年合作过,在2013年工作了几天之后,我真的很喜欢它,但现在我发现了一些非常烦人的东西。 看一看: 在此输入图像描述

好吧,我的Visual Studio是德语,但我认为你可以得到正在发生的事情。 我想知道为什么VS说我有一个未处理的例外。 除了尝试捕捉这个我可以做什么来处理异常?

这只是一个例子。 我的真实代码有点复杂,try / catch位于这段代码之上的某些级别。

我不记得VS2010表现得像这样。

我查看了例外设置,但我没有更改任何内容,所以我使用默认设置: 在此输入图像描述

我想知道的是为什么VS处理这个代码好像它是未处理的,当你可以看到它不是。 这就是为什么我不想在我的例外设置中更改任何内容。 你有什么想法或建议吗?

它在帮助你。 在运行时,您将获得预期的结果,即。 它将进入catch区块。

禁用选项中的所有异常,VS将忽略所有异常并让代码捕获它们。

编辑:

您应该展开列表,因为它们将包含已检查的项目,即使未选中父/组复选框也是如此。

所以我尝试了Alex的提示,取消选中对话框中的Exception。

取消选中Exception后,我的代码就像在VS调试器外部运行一样。 但我对声明不满意

设置为“全局”。 从那时起它将忽略异常

所以我接着进行了一些研究。 我把一些未处理的IOException抛入我的代码中。 VS打破了异常的界限,我想知道的是,因为我取消了上述观点。 看着VS对话框,我发现它们并不完全相同,它们有很小的区别。

有人说(因为我的VS是德语,我自己把它翻译成英文,也许文本在实际上有点不同): IOException未被处理 - 这是在Exception对话框中取消选中项目后未处理的IOException。

另一个说(由我自己翻译): IOException不是由usercode处理的 - 这是在Exception-dialog中检查项目。

那么代码和用户代码之间有什么区别?

我去谷歌进行一些研究,我发现了两个非常重要的网站。 首先解释ExceptionDialog的含义。 我没有引用任何内容,因为本网站上的所有信息都值得注意。

ExceptionDialog解释道

现在让我们知道VS如何检测用户代码。 因此我找到了secound网站:

用户代码

通过所有这些信息,我做了这些实验:

  1. 包含activateCommunication() - > VS的dll的Delte .pdb文件没有中断
  2. 再次放回pdb,取消选中“启用Visual Studio托管过程” - > VS没有中断

嗯,现在有点清楚了。 我仍然想知道为什么启用托管进程,VS中断,即使我有处理代码。 也许有一些debugCode围绕调用我的方法,可能被视为网站上提到的“系统代码”!?!?

嗯,这就是我发现的。

问候Ronny

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM