Delphi中的EProgrammerNotFound异常?

时间:2010-01-18 05:49:38

标签: delphi delphi-2009 delphi-xe7

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

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

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

  

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

     

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

7 个答案:

答案 0 :(得分:135)

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

这是一个简单的对话;

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

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

答案 1 :(得分:21)

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

答案 2 :(得分:18)

它是在Delphi 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;”源代码)。

- 的Jeroen

答案 3 :(得分: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>

答案 4 :(得分:3)

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

答案 5 :(得分:2)

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

答案 6 :(得分:0)

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

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