EProgrammerNotFound исключение в Delphi?


В Delphi 2009, SysUtils.pas содержит это в строке 425:

EProgrammerNotFound = class(Exception);
  • это просто пасхальное яйцо или что-то серьезное?
  • когда это исключение должно быть вызвано?
  • существует ли он также в Delphi Prism и/или Free Pascal?

Q: этот класс исключений все еще объявлен в Delphi (в настоящее время XE7)? A: да, и это даже документирована!

нестандартным способом для указания ошибок программного обеспечения.

вы можете использовать EProgrammerNotFound в качестве альтернативы для указания программного обеспечения ошибки, обнаруженные во время выполнения.

8 98

8 ответов:

Это просто результат долгого дня, и мы получили немного головокружение. В течение многих, многих лет (с тех пор, как я был в команде), мы всегда шутили о замене некоторого сообщения об ошибке в компиляторе для одной из самых распространенных ошибок с аналогичным сообщением. Внутренне мы всегда шутили и подшучивали над разными вещами и людьми (в основном над самой командой). Если у вас нет чувства юмора, вы обречены на раннюю могилу.

Это был простой разговор;

"О, вы должны были поднять исключение EProgrammerNotFound в этой функции."
- ЛОЛ! Мы должны добавить это исключение и посмотреть, кто заметит."
"Интересно, сколько спекуляций будет о том, почему это происходит?"

Итак, я думаю, все, что я могу сказать, это: "вы все сыграли нам на руку ;-)... Бувахахаха! взломали!"

Он используется в сочетании с технологией "fix-inline", которая требует, чтобы программист был связан с exe-файлом ; -)

Он был представлен в Delphi 2009, все еще присутствует в Delphi 2010, и недавно есть немного больше Внимание интернет.

Я думаю, что это пасхальное яйцо, похожие на " EBCAK" (ошибка между креслом и клавиатурой), и пропуск номера версии Delphi 13.

EProgrammerNotFound

  • объявляется в ветви Win32 блока SysUtils, но не используется нигде в RTL или VCL
  • нет в Delphi Prism
  • был представлен в Delphi 2009, поэтому не присутствует в VCL.NET
  • в настоящее время (версия 3.5) ничего подобного в .NET framework (не знаю, почему, эти ребята есть юмор)

Я не думаю, что EProgrammerNotFound на самом деле предназначен для использования вообще, но поскольку он есть, люди будут шутливо использовать его (подобно тому, как положить случайный " const False = True; True = не False; " в чужом исходном коде).

-- jeroen

происхождение спорно, но это было известно в течение некоторого времени...
Марко Канту пошутил об этом в сеансе" веселая сторона Дельфи".
ИМО, его следует использовать чаще ; -)

читать on:
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>

Это аналог времени выполнения компилятора " синтаксическая ошибка: ожидаемый программист.";>

с программистом, это не программист, который сидит за Delphi, который ссылается. Я думаю, что он используется для того, что в D2009 и выше они планировали (никогда не использовали его, не знаю, работает ли он), что каждый объект был ожидаемым.

это своего рода самоописание шутка, вы можете попробовать этот код

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

или

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

вышеизложенное работает в Delphi 10 Seattle.

Я программист, я исключение ?

Марко Канту также описывает это в своей книге "Delphi 2009 handbook" - страница 242. Он говорит, что это никогда не оправдывается в исходном коде VCL.