第一次机会例外

时间:2010-01-07 12:56:06

标签: vb.net visual-studio windows-7

我有一个在windows xp下运行完美的项目。

现在我尝试在Windows 7下运行它,并在立即窗口下获得了很多例外。

A first chance exception of type 'System.ArgumentNullException' occurred in Microsoft.VisualBasic.dll
A first chance exception of type 'System.IO.FileNotFoundException' occurred in LP_Wizard.exe
A first chance exception of type 'System.ArgumentException' occurred in LP_Wizard.exe
A first chance exception of type 'System.NullReferenceException' occurred in LP_Wizard.exe
A first chance exception of type 'System.InvalidCastException' occurred in Microsoft.VisualBasic.dll
A first chance exception of type 'System.ArgumentNullException' occurred in Microsoft.VisualBasic.dll
A first chance exception of type 'System.IO.FileNotFoundException' occurred in LP_Wizard.exe
A first chance exception of type 'System.InvalidCastException' occurred in Microsoft.VisualBasic.dll
A first chance exception of type 'System.ArgumentNullException' occurred in Microsoft.VisualBasic.dll
A first chance exception of type 'System.IO.FileNotFoundException' occurred in LP_Wizard.exe
A first chance exception of type 'System.ArgumentNullException' occurred in Microsoft.VisualBasic.dll
A first chance exception of type 'System.IO.FileNotFoundException' occurred in LP_Wizard.exe

知道Windows 7中的Microsoft.VisualBasic.dll有什么问题以及我如何纠正这个问题?

非常感谢您的帮助。

3 个答案:

答案 0 :(得分:56)

如果要确定异常发生的位置,可以选择Debug-> Exceptions菜单项,在出现的对话框中,选中“Common Language Runtime Exceptions”的第一个复选框。一旦发生异常,这将使调试器中断,而不是仅仅打破未处理的异常。

这也是为什么捕获一般异常通常是一个坏主意的一个原因,除非您明确记录捕获的信息。

答案 1 :(得分:43)

正在发生的事情是调试器可以在命中任何catch块之前立即“看到”异常(因此是“第一次机会”)。任何未由catch块处理的异常都被视为“第二次机会”异常并将正常中断。

如果这些例外没有停止运行您的应用程序,因为它们未处理,那么您可能没问题。大多数情况下,代码处理异常,这不是问题。输出只是Visual Studio,让您知道引发的异常。

如果有太多要忽略的话,请参阅“Avoiding first chance exception messages when the exception is safely handled”问题以了解减少此问题的方法。

答案 2 :(得分:1)

您是否在调试器中?您的程序正在处理这些异常吗?如果是这样,你需要找到一个设置,告诉VB压制警告你处理异常。 Maybey安装在XP上但是在W7上安装时没有设置。看看这是否有帮助:

http://www.helixoft.com/blog/archives/24