【发布时间】:2013-07-29 23:20:10
【问题描述】:
我将 D5 和 Synaps 与 OpenSSL 一起使用,它运行良好。我正在尝试处理崩溃,因此故意输入了错误数据,一次尝试一次。到目前为止,我已经很好地处理了引发的崩溃,但我只是更改了登录密码并尝试登录。
gMajorFail:=False;
if not pop3.Login() then
begin
gMajorFail:=True;
raise EPOP3.Create('POP3 ERROR: '+IntToStr(pop3.Sock.LastError)+
' When trying to Login to Account');
end;
if gMajorFail then GoTo HadFailure;
它不会跳转到 HadFailure-Label,而是跳转到过程中的最后一行代码。
我尝试过使用 Try/Finally(这就是我使用标签转到 GoTo 的原因),但它仍然会直接跳到最后一行代码。
我哪里出错了,我该如何解决?
谢谢
【问题讨论】:
-
你为什么要抛出异常?
-
跳到最后一行后...会不会跳回应该的位置?我在 D2007 中调试 ocx 时遇到了这种行为。这似乎是“正常的”。
-
@DavidHeffernan 我也想知道,但不敢问。
-
@DavidHeffernan 该代码直接取自 Synapse 示例。我认为这一切都会按预期工作。确实如此,但显然不是在遇到异常时。
-
@user2175495 我认为您不了解异常如何改变程序控制流。
标签: delphi exception-handling delphi-5