前几天我们的新Visual Studio 2013副本已发送给我们。 我之前和2010年合作过,在2013年工作了几天之后,我真的很喜欢它,但现在我发现了一些非常烦人的东西。看一看:
嗯,我的Visual Studio是用德语写的,但我认为你可以得到正在发生的事情。 我想知道为什么VS说我有一个未处理的例外。除了尝试捕捉这个我可以做什么来处理异常?
这只是一个例子。我的真实代码有点复杂,try / catch位于这段代码之上的某些层次。
我记不起VS2010的表现如此。
我查看了例外设置,但我没有更改任何内容,所以我使用默认设置:
我想知道为什么VS会处理这段代码,好像它处理不当,而你可以看到它不是。这就是为什么我不想在我的例外设置中更改任何内容。你有什么想法或建议吗?
答案 0 :(得分:1)
它在帮助你。在运行时,您将获得预期的结果,即。它将进入捕获区。
禁用选项中的所有异常,VS将忽略所有异常并让代码捕获它们。
编辑:
您应该展开列表,因为它们将包含选中的项目,即使未选中父/组复选框也是如此。
答案 1 :(得分:1)
所以我尝试了Alex的提示,取消选中对话框中的Exception。
取消选中Exception后,我的代码就像在VS调试器外运行一样。 但我对声明不满意
设置为“全局”。从那时起它将忽略异常
所以我接着进行了一些研究。 我把一些未处理的IOException抛入我的代码中。 VS打破了异常的界限,我想知道的是,因为我取消了上述观点。看着VS对话框,我发现它们并不完全相同,它们有很小的区别。
一个人说(因为我的VS是德语,我自己把它翻译成英文,也许文本在实际上有点不同): IOException未被处理 - 这是未处理的IOException之后在“例外”对话框中取消选中该项目。
另一个说(由我自己翻译): IOException未由用户代码处理 - 这是在异常对话框中检查项目时。
那么代码和用户代码之间有什么区别?
我去谷歌进行一些研究,我发现了两个非常重要的网站。首先解释ExceptionDialog的含义。我没有引用任何内容,因为本网站上的所有信息都值得注意。
现在让我们知道VS如何检测用户代码。因此,我发现了这个网站:
通过所有这些信息,我做了这些实验:
嗯,现在有点清楚了。我仍然想知道为什么启用托管进程,VS中断,即使我有处理代码。也许有一些debugCode围绕调用我的方法,可能被视为网站上提到的“系统代码”!?!?
嗯,这就是我发现的。
问候 罗尼