Delphi中的EProgrammerNotFound异常?

mjn*_*mjn 122 delphi delphi-2009 delphi-xe7

在Delphi 2009中,SysUtils.pas包含第425行:

EProgrammerNotFound = class(Exception);
Run Code Online (Sandbox Code Playgroud)
  • 这只是一个复活节彩蛋还是严肃的东西?
  • 什么时候应该提出这个例外?
  • 它是否也存在于Delphi Prism和/或Free Pascal中?

问:这个异常类是否仍在Delphi中声明(目前是XE7)?答:是的,甚至有记录!

指示软件故障的非标准方式.

您可以使用EProgrammerNotFound作为替代,以指示在运行时检测到的软件故障.

All*_*uer 141

这只是漫长的一天的结果,我们得到了一点点头晕.很多年(自从我加入团队以来),我们总是开玩笑说在编译器中用一个类似的消息替换一个最常见的错误.在内部,我们总是在不同的事物和人(主要是在团队本身)开玩笑和开玩笑.如果你没有幽默感,那么你注定要早日进行坟墓.

这是一个简单的对话;

"哦,你应该在该函数中引发EProgrammerNotFound异常."
"大声笑!我们应该添加该例外,看看谁注意到了."
"我想知道为什么会有这么多的猜测?"

所以,我想我可以说的是,"你们一切都在我们手中; - )...... Buwahahaha!pwned!"

  • 这不是Tron最常见的例外吗? (9认同)
  • @ stanleyxu2005,为此您可以使用[`ENotImplemented`](http://docwiki.embarcadero.com/Libraries/XE2/en/System.SysUtils.ENotImplemented)异常. (6认同)

Uwe*_*abe 22

它与"fix-inline"技术结合使用,该技术要求程序员必须链接到exe文件中;-)


Jer*_*ers 18

它是在Delphi 2009中引入的,仍然存在于Delphi 2010中,最近互联网上得到了更多的关注.

我认为它是一个复活节彩蛋,类似于" EBCAK "(椅子和键盘之间的错误),以及跳过Delphi版本号13.

EProgrammerNotFound

  • 在SysUtils单元的Win32分支中声明,但不在RTL或VCL中的任何位置使用
  • 在Delphi Prism中不存在
  • 在Delphi 2009中引入,因此在VCL.NET中不存在
  • 目前(版本3.5)在.NET框架中没有类似的东西(不知道为什么,这些家伙确实有幽默感)

我认为EProgrammerNotFound实际上根本不会被使用,但是因为它在那里,人们会开玩笑地使用它(类似于把一个流浪的"const False = True; True = not False;"在某些elses源代码中).

--jeroen

  • EBCAK?我总是听说它表达为PEBKAC.(键盘和椅子之间存在问题). (6认同)
  • 嗯,程序员不仅是一个人,也是一个设备(用于编程例如嵌入式设备的闪存)。我在这里闻到 iPhone 的味道吗?不,那么它将在 IDE 源中,而不是 sysutils。 (2认同)

Fra*_*ois 9

起源是有争议的,但它已经知道了一段时间......
Marco Cantu在"Delphi的乐趣方面"会话中开玩笑说.
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>


dth*_*rpe 5

它是编译器“语法错误:程序员预期”的运行时模拟。;>

  • 您应该已经看到了编译器字符串本地化为 Jive 的构建! (2认同)

LaB*_*cca 5

这是一种自我描述的笑话,你可以试试这个代码

raise EProgrammerNotFound.Create('Jack is away');
Run Code Online (Sandbox Code Playgroud)

或者

raise ENotImplemented.Create('May be in future this will work');
Run Code Online (Sandbox Code Playgroud)

以上适用于 Delphi 10 西雅图。