Delphi XE - EOleSysError,但仅限在IDE /调试器中运行时

时间:2013-12-04 21:16:34

标签: delphi debugging com

我在XE论坛上看到了同样问题的其他问题,但仍然没有答案。我使用XE IDE运行我的应用程序,我得到一个EOleSysError - '系统无法找到指定的路径'。

但是,我可以去探索器到同一目录并在IDE外部运行相同的应用程序,它运行正常。没有错误。我的所有程序集都位于应用程序的构建目录中,所以我不依赖于GAC或任何东西,只是可执行文件所在的目录。

这是XE和Windows 7 x64的已知错误吗?

这是路径问题吗?环境变量问题?几乎看起来IDE正在从另一个目录运行我的exe,但exe只在一个地方编译。

任何帮助都将不胜感激。

谢谢,

瑞克

1 个答案:

答案 0 :(得分:3)

这根本不是一个错误。调试器正在捕获异常,并在将其传递给代码中的异常处理程序之前让您了解它。它是按设计工作的,让开发人员知道发生了异常。

如果你想避免这种情况发生,你可以做以下几点之一:

  • (最简单)在引发异常之前的行上设置断点。右键单击该行,然后从上下文菜单中选择断点属性。点击高级... 按钮,然后取消选中中断复选框,并选中忽略后续例外复选框,然后点击确定关闭对话框。在引发异常后,在行上设置断点,并重复上述过程,但这次检查处理后续异常复选框。我说这是最简单的,因为你可以通过禁用断点来禁用它以打破异常,并通过删除断点完全删除它,并且你得到一个可视指示符,表明该代码块有些不同。

  • 禁用所有EOleSysError例外的IDE错误处理,从工具 - >选项菜单中,找到调试器选项 - > CodeGear / Embarcadero调试器 - &gt ;语言例外,并将EOleSysError添加到要忽略的例外类型对话框,并确保选中该项。例如,这就是阻止Indy异常停止调试器的方式。

  • 只需点击例外对话框中的继续按钮,然后让代码继续运行。这有时会有点恼人,例如当你在循环中运行代码时,循环中的某些东西会引发异常;你一遍又一遍地对话。