web-dev-qa-db-ja.com

DelphiでのEProgrammerNotFound例外?

Delphi 2009では、SysUtils.pasの425行目にこれが含まれています。

EProgrammerNotFound = class(Exception);
  • これは単に easter Egg または何か深刻なものですか?
  • この例外はいつ発生しますか?
  • Delphi PrismやFree Pascalにも存在しますか?

Q:この例外クラスはまだDelphi(現在XE7)で宣言されていますか? A:はい、そしてそれは 文書化 です!

ソフトウェア障害を示す非標準的な方法。

EProgrammerNotFoundを代わりに使用して、実行時に検出されたソフトウェア障害を示すことができます。

126
mjn

それはちょうど長い一日の結果であり、私たちは少しめまいをしていました。 (私がチームに参加して以来)何年もの間、コンパイラーのいくつかのエラーメッセージを最も一般的なエラーの1つを同様のメッセージに置き換えることについては常に冗談を言っていました。内部的には、さまざまなものや人々(主にチーム自体)に対して常に冗談を言ったり、面白がったりしています。ユーモアのセンスがないなら、あなたは初期の墓に運命づけられています。

それは単純な会話でした。

「ああ、その関数でEProgrammerNotFound例外が発生しているはずです。」
「LOL!その例外を追加して、誰が気付くかを確認する必要があります。」
「なぜそれが存在するのかについて、どのくらいの憶測があるのでしょうか?」

だから、私が言えることは、「あなたはみな私たちの手に直接入った;-)...ブワハハハ!

144
Allen Bauer

これは、プログラマーがexeファイルにリンクされている必要がある "fix-inline"テクノロジーと組み合わせて使用​​されます;-)

23
Uwe Raabe

Delphi 2009で導入され、現在もDelphi 2010に存在します。- 最近moreinternet に注目しました。

" [〜#〜] ebcak [〜#〜] "(椅子とキーボードの間のエラー)に似たイースターエッグであり、 Delphiバージョン番号13のスキップ)

EProgrammerNotFound

  • sysUtilsユニットのWin32ブランチで宣言されていますが、RTLまたはVCLのどこでも使用されていません
  • delphi Prismには存在しません
  • delphi 2009で導入されたため、VCL.NETには存在しません
  • 現在(バージョン3.5)は.NETフレームワークに類似したものはありません(理由はわかりませんが、これらの人は ユーモアを持っています

私はEProgrammerNotFoundが実際に使用されることを意図しているとは思いませんが、そこにあるので、人々は冗談めかしてそれを使用します(他の人のソースコードに「const False = True; True = not False;」のように)。

--jeroen

19

起源は議論の余地がありますが、それはしばらくの間知られています...
マルコカントゥは、「デルファイの楽しい側」セッションでそれについて冗談を言った。
IMO、より頻繁に使用する必要があります;-)

読む:
http://wings-of-wind.com/2010/01/12/best-programming-feature-ever/
http://blog.barrkel.com/2008/11/reference-counted-pointers-revisited.html

PS:Delphi Prism、FreePascal、C#には存在しないと思います(ただし、存在するはずです)。 <G>

10
François

これは、コンパイラーの「構文エラー:予期されるプログラマー」の実行時の類似物です。 ;>

4
dthorpe

プログラマーでは、参照されるのはDelphiの後ろに座っているプログラマーではありません。 D2009以降では、すべてのオブジェクトが待機可能になるように計画されていた(これが機能するかどうかわからない)ために使用されたと思います。

2

一種の自己記述的な冗談です、あなたはこのコードを試すことができます

raise EProgrammerNotFound.Create('Jack is away');

または

raise ENotImplemented.Create('May be in future this will work');

上記はDelphi 10 Seattleで機能します。

1
LaBracca

私はプログラマーですが、例外ですか?

MarcoCantùは、このことを彼の著書「Delphi 2009ハンドブック」(242ページ)でも説明しています。

0
Edelcom