Delphi中的EProgrammerNotFound异常?

问题描述 投票:111回答:8

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

EProgrammerNotFound = class(Exception);
  • 这只是一个easter egg或严重的东西?
  • 什么时候应该提出这个例外?
  • 它是否也存在于Delphi Prism和/或Free Pascal中?

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

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

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

delphi delphi-2009 delphi-xe7
8个回答
137
投票

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

这是一个简单的对话;

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

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


22
投票

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


18
投票

它是在德尔福2009中引入的,仍然存在于Delphi 2010中,而recentlymore上得到了一些internet的关注。

我认为它是一个复活节彩蛋,类似于“EBCAK”(椅子和键盘之间的错误)和skipping of Delphi version number 13

EProgrammerNotFound

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

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

- meroon


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>


3
投票

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


2
投票

对于程序员来说,不是程序员坐在被引用的Delphi后面。我认为这是用于D2009及以上的事实,他们计划(从未使用它不知道它是否有效)每个对象都是等待的。


1
投票

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

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

要么

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

以上工作在Delphi 10 Seattle。


0
投票

我是程序员,我是个例外吗?

MarcoCantù还在他的书“Delphi 2009手册” - 第242页中描述了这一点。他告诉它在VCL源代码中从未出现过。

© www.soinside.com 2019 - 2024. All rights reserved.