2012-02-13 7 views
1

ソースコードのない第三者コンポーネントに対していくつかのコードを書いています。 (これについてコメントしないでください:))、そのコンポーネントのメソッドを呼び出すときに何かが起こり、例外ブロック以外のtryブロックに入れても、例外ブロックはバイパスされます。"try..except"のexceptブロックがバイパスされる理由

私は何か間違っていますか?

理由は何でしょうか?

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

[A ']で停止することなく、段階的にデバッグすることで、[A]から[B]に移動できます。

なぜですか?

+2

So * * SomeOtherCode *も* 'HandleException'も実行されませんか? –

+1

'[B]'を押すとアプリケーションは正常に処理されますか? –

+8

'except'セクションに' on exception do ... '句がありますか?もしそうでなければ、 'HandleException;の前に' on do Exception'を追加して、それが動作を変更するかどうか確認してください。 –

答えて

1

コードをステップ実行しているときに、デバッガは例外ハンドラにうまくジャンプしません。代わりにHandleExceptionにブレークポイントを設定し、そこに停止します(最初に例外がある場合)。

0

HandleExceptionに届かない理由は、MethodOneに発生した例外がMethodOneによって食べられたり、処理されたりする可能性があります。

しかし、そのためには、propablyケースではありません:何かがあなたが何かに拡大でし

起こる

関連する問題