4

Delphiで、架空のEChuckNorrisExceptionをキャッチ不能にするコードのスニペットを作成することは可能ですか?

Javaプログラミング言語の場合、これはUncatchableChuckNorrisExceptionでYesと回答されていることがわかりまし

4

2 に答える 2

9

いいえ。Delphi では、任意のオブジェクト (子孫)を発生させることができますが、慣例により、これは通常、基底クラスから派生したオブジェクトに限定されます。また、あらゆるものをキャッチするブランケット例外ハンドラーを作成することもできますTObjectException

何らかの方法で情報を報告しようとするほとんどのキャッチオール例外ハンドラーは、次のようになります。

try
...
except
  on E: Exception do
    ...
end;

ですから、 の子孫ではないものを育てると、Exception引っかからずにこのスタイルを通過します。

ただし、次のように記述することもできます。

try
...
except
  ...
end;

そのスタイルの例外ハンドラーでは何も得られません。

どこにもキャッチされていない例外を発生させると、プログラムはすぐにエラーで終了します。Haltそれが意図した効果である場合は、ゼロ以外のエラー コードで呼び出して同じことを行うことができます。

于 2012-12-14T17:38:58.587 に答える
0

dll 内で発生し、その dll 内でキャッチされない例外は、呼び出し元のアプリケーションの例外ハンドラーでもキャッチされないことがあります。dll を使用せずにその動作を模倣することは可能でしょうか?

于 2012-12-15T14:04:22.863 に答える