EZSQLException处理消息";SQL错误:Can';t连接到xxx.xxx.x.xx(xxxxx)上的MySQL服务器。”;

EZSQLException处理消息";SQL错误:Can';t连接到xxx.xxx.x.xx(xxxxx)上的MySQL服务器。”;,mysql,delphi,exception-handling,zeos,Mysql,Delphi,Exception Handling,Zeos,我正在使用MySQL服务器、Delphi和Zeoslib。每当我尝试连接到运行在另一台机器上的MySQL服务器时,如果它故意关闭,它就会抛出一个无法连接的异常。我希望能够抑制此异常或正确处理它。但我的代码似乎不起作用 这是我的密码: try WebSQLCon.Connect; except on E: Exception do begin WebSQLCon.Disconnect; end; end; 我看不出这个代码有什么问题。那么,为什么它不处理异常而不弹出消息呢 更

我正在使用MySQL服务器、Delphi和Zeoslib。每当我尝试连接到运行在另一台机器上的MySQL服务器时,如果它故意关闭,它就会抛出一个无法连接的异常。我希望能够抑制此异常或正确处理它。但我的代码似乎不起作用

这是我的密码:

try
  WebSQLCon.Connect;
except
  on E: Exception do begin
    WebSQLCon.Disconnect;
  end;
end;
我看不出这个代码有什么问题。那么,为什么它不处理异常而不弹出消息呢

更新:

您看到的是调试器在异常时中断。程序不会显示屏幕截图中显示的对话框。相反,调试器显示了它。您可以单击“继续”按钮继续

如果要禁用此对话框,可以从IDE选项的调试器区域中执行此操作。这些设置可以在工具|选项|调试器选项|语言异常下找到。在那里,您可以取消选中NotifyonLanguageExceptions以抑制此对话框。然而,这通常不值得推荐。您可能会通过添加到被忽略的异常列表中来抑制此异常类。但是,现在您知道是什么原因导致了这种情况,您可能更愿意只按“继续”按钮


请注意,正如注释中所讨论的,您的swallow all异常处理程序代码很可能是处理
Connect
失败问题的错误方法。

异常处理充其量看起来可疑。你真的要接受所有这样的例外吗。如果
Connect
引发异常,为什么需要调用
Disconnect
。也许就是这样。可能在调用
断开连接时引发了异常?请注意,我们不得不猜测什么是
WebSQLCon
。@DavidHeffernan-WebSQLCon是连接。我刚刚调试了代码,异常出现在
WebSQLCon.Connect
。确认消息后,它会跳转到
WebSQLCon。断开连接
,不会引发异常。错误消息显示在哪里?是调试器吗?在调试器外部执行时是否显示错误对话框?另外,在您接受了这个异常之后,您希望发生什么?您是否希望依赖现有连接的代码的其余部分不会反对它不存在的事实。您对异常处理了解多少?您知道最佳实践是不处理异常并让它们在调用堆栈上浮动,直到它们被知道如何处理它们的东西捕获为止吗?我还想向您指出我最初的评论。你真的要接受所有这样的例外吗?如果Connect引发异常,为什么需要调用
Disconnect
?:)是的。。。。我只是在没有调试的情况下运行了我的程序,它正按照您所描述的那样工作。谢谢