问题描述
什么时候是什么意思:
当我正常运行程序时,我收到一条错误消息,但是当我使用Visual Studio 2010的调试器时,我没有收到错误消息吗?该错误以某种方式被完全忽略.
该程序的作用是遍历注册表并显示文件扩展名的默认图标,错误消息是某些dll无法打开.该错误信息不会使程序崩溃.当我按OK时,迭代将继续正常进行. ,您会看到异常.
从您的信息中,我无法确定异常的确切原因,因此,我试图猜测为什么在调试器下运行和从可执行文件运行之间会有区别.首先,您没有描述错误消息"的显示方式.
一种可能的情况是:没有错误消息",并且始终运行的应用程序正常运行,无论是否在调试器下,但如果运行时异常被抛出,则始终在中间;异常处理程序考虑到这一点;并且不会将此异常进一步传播到堆栈(在catch
块中没有重新抛出或引发另一个异常).
例如,如果找不到用于获取图标的DLL,则返回DLL.因此未使用这些图标,但仍允许应用程序运行.为什么不? -足够合理.只有您才能弄清到底发生了什么.
您在调试器下看到的内容可能只是此异常情况下的调试器断点.它不应该在正常运行时显示(因为异常处理程序抑制了传播),但是调试器已调整为在某些或所有异常时中断执行,使您可以继续执行.引发或捕获异常的点就像一个断点. (这是可选的,请参见下文.)
当调试器在异常处中断时,它会显示异常消息.这与错误消息"不太相同.您可以通过Debug->在VS中控制此有用的调试器选项集.例外...窗口.为了进行实验,请尝试关闭所有内容(以便调试器在引发或捕获某种异常时不会中断),然后查看您的错误消息"是否消失.不要忘记重要的调试器功能中的此功能,因此请正确设置此选项-它可以为您提供很多帮助.
What does it mean when:
I recieve an error message when I run the program normally but when I use Visual Studio 2010''s debugger I don''t? The error is somehow completely ignored.
What the program does is to iterate through the registry and display the default icons of file extensions and the error message is, that some dll cannot be opened. The error message does not crash the program. When I press OK the iteration continues normally.
这篇关于当我不使用调试器时收到错误消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!