Delphiで、架空のEChuckNorrisExceptionをキャッチ不能にするコードのスニペットを作成することは可能ですか?
Javaプログラミング言語の場合、これはUncatchableChuckNorrisExceptionでYesと回答されていることがわかりました。
Delphiで、架空のEChuckNorrisExceptionをキャッチ不能にするコードのスニペットを作成することは可能ですか?
Javaプログラミング言語の場合、これはUncatchableChuckNorrisExceptionでYesと回答されていることがわかりました。
いいえ。Delphi では、任意のオブジェクト (子孫)を発生させることができますが、慣例により、これは通常、基底クラスから派生したオブジェクトに限定されます。また、あらゆるものをキャッチするブランケット例外ハンドラーを作成することもできます。TObject
Exception
何らかの方法で情報を報告しようとするほとんどのキャッチオール例外ハンドラーは、次のようになります。
try
...
except
on E: Exception do
...
end;
ですから、 の子孫ではないものを育てると、Exception
引っかからずにこのスタイルを通過します。
ただし、次のように記述することもできます。
try
...
except
...
end;
そのスタイルの例外ハンドラーでは何も得られません。
どこにもキャッチされていない例外を発生させると、プログラムはすぐにエラーで終了します。Halt
それが意図した効果である場合は、ゼロ以外のエラー コードで呼び出して同じことを行うことができます。
dll 内で発生し、その dll 内でキャッチされない例外は、呼び出し元のアプリケーションの例外ハンドラーでもキャッチされないことがあります。dll を使用せずにその動作を模倣することは可能でしょうか?