私はdelphiプログラムをデバッグしています。例外処理後に例外を解放/破棄しますか?
except
on e: TErrorTapeDrive do
if e.errorCode = 1104 then
if Assigned(indexDoneEvent) then
indexDoneEvent;
// other handling...
// other handling...
end;
私はExcetion eをキャッチし、必要なことをします。さて、デバッグプログラムカウンタがend;
の直下の行に到達したら、e.errorCode
にカーソルを置くと、その値が表示されます。私はこれが範囲外であり、最終的には破壊されたと思います。
私の質問は次のとおりです。例外処理後に例外を解放/破棄する必要がありますか?
エラーコード*が* 1104でない場合、その例外を再発生させることを検討してください。現在、コード*は他のすべてのエラーを黙って無視します。 –
errorCode、@RobKennedyだけでなく、他のタイプの例外も処理されます。 –
いいえ、パオロ。あなたの現在のコードは既に*他の例外の型を無視しています。これは**正しい動作です**。例外を引き起こした問題を修正*するコードを書かない限り、例外を捕まえてはいけません。あなたがそれを修正することができない場合は、それをキャッチしないでください。さもなければ、コールスタックをさらに上にコード化する*拒否*それを修正する機会。 –