2012-02-13 99 views
1

我正在编写一些针对没有源代码的第三方组件的代码。 (不要评论这:)),调用该组件上的方法时会发生什么情况,即使我将它放在try块中,除了block之外的块被绕过。为什么除了“try..except”块之外的原因被绕过

我做错了什么?

可能是什么原因?

begin 
    try 
    3rdPartyComponentWithNoSourceCode.MethodOne; [A] 
    SomeOtherCode; 
    except 
    HandleException; [A'] 
    end; 
end; [B] 

调试一步一步地将我从[A]带到[B],而不停在[A']上。

为什么?

+2

所以*既不执行*'SomeOtherCode' *也不执行''HandleException'? – 2012-02-13 16:04:25

+1

点击'[B]'后,应用程序是否正常进行? – 2012-02-13 16:26:22

+8

你的'except'部分是否包含'on exception do ...'子句?如果没有,在'HandleException;'之前加上'Exception do',看看是否改变了行为。 – 2012-02-13 16:36:00

回答

1

当您单步执行代码时,调试器不会跳转到异常处理程序。而是在HandleException上放置一个断点,并在那里停止(如果第一个地方有异常)。

0

未到达HandleException的原因可能是MethodOne中引发的异常可能由MethodOne本身进食或处理。

但这propably并非如此,这是因为:

有事

你能在东西扩大?

相关问题