Delphi “除块外的原因”;尝试..除了;被绕过
我正在针对一个没有源代码的第三方组件编写一些代码。(不要对此发表评论:)),在该组件上调用方法时会发生一些情况,即使我将其放入try-except块中,except块也会被绕过 我做错什么了吗 原因可能是什么Delphi “除块外的原因”;尝试..除了;被绕过,delphi,debugging,try-except,Delphi,Debugging,Try Except,我正在针对一个没有源代码的第三方组件编写一些代码。(不要对此发表评论:)),在该组件上调用方法时会发生一些情况,即使我将其放入try-except块中,except块也会被绕过 我做错什么了吗 原因可能是什么 begin try 3rdPartyComponentWithNoSourceCode.MethodOne; [A] SomeOtherCode; except HandleException; [A'] end; end; [B] 一步一步地调试将我
begin
try
3rdPartyComponentWithNoSourceCode.MethodOne; [A]
SomeOtherCode;
except
HandleException; [A']
end;
end; [B]
一步一步地调试将我从[A]带到[B],而不会在[A']上停止
为什么?当您单步执行代码时,调试器无法跳转到异常处理程序。将断点放在HandleException上,它将停止在那里(如果首先出现异常)。当您单步执行代码时,调试器无法跳转到异常处理程序。将断点放在HandleException上,它将在那里停止(如果首先出现异常)。没有到达
HandleException
的原因可能是MethodOne
中引发的任何异常都可能被MethodOne
本身吃掉或处理
但情况可能并非如此,因为:
事情发生了
您能详细介绍一下吗?没有达到
HandleException
的原因可能是MethodOne
中引发的任何异常都可能被MethodOne
本身吃掉或处理
但情况可能并非如此,因为:
事情发生了
你能扩展一下something吗?这样既不执行
somethercode
也不执行HandleException
?点击[B]
后应用程序是否正常运行?你的except
部分是否包含on exception do…
子句?如果不是,则在异常do上添加,处理异常之前添加代码>并查看这是否会改变行为。因为没有异常;)其他代码做什么?可能已经优化了吗?抱歉耽搁了。是的,按F8键后,它会直接跳到[B]。我从未见过,但我忘了说第三方组件是ActiveX组件。这可能是原因吗?(它是ActiveX的包装器)因此既不执行SomeOtherCode
也不执行HandleException
?在点击[B]
后应用程序是否正常运行?您的except
部分是否包含on exception do…
子句?如果不是,则在异常do上添加,处理异常之前添加代码>并查看这是否会改变行为。因为没有异常;)其他代码做什么?可能已经优化了吗?抱歉耽搁了。是的,按F8键后,它会直接跳到[B]。我从未见过,但我忘了说第三方组件是ActiveX组件。这可能是原因吗?(它是ActiveX的包装器)