Dans Delphi 2009, SysUtils.pas contient ceci à la ligne 425:
EProgrammerNotFound = class(Exception);
- Est-ce simplement un œuf de Pâques ou quelque chose de grave?
- Quand cette exception doit-elle être levée?
- Existe-t-il également dans Delphi Prism et / ou Free Pascal?
Q: Cette classe d'exception est-elle toujours déclarée dans Delphi (actuellement XE7)? R: Oui, et c'est même documenté !
Manière non standard d'indiquer les défauts du logiciel.
Vous pouvez utiliser EProgrammerNotFound comme alternative pour indiquer les défauts logiciels détectés au moment de l'exécution.
Réponses:
C'est juste le résultat d'une longue journée et nous étions un peu étourdis. Pendant de très nombreuses années (depuis que je faisais partie de l'équipe), nous avions toujours plaisanté sur le remplacement d'un message d'erreur dans le compilateur pour l'une des erreurs les plus courantes par un message similaire. En interne, nous avons toujours plaisanté et nous sommes moqués de différentes choses et personnes (principalement de l'équipe elle-même). Si vous n'avez pas le sens de l'humour, vous êtes destiné à une tombe précoce.
C'était une simple conversation;
"Oh, vous auriez dû lever l'exception EProgrammerNotFound dans cette fonction."
"LOL! Nous devrions ajouter cette exception et voir qui le remarque."
"Je me demande combien il y aura de spéculations sur la raison pour laquelle c'est là?"
Donc, je suppose que tout ce que je peux dire, c'est: "Vous avez tous joué entre nos mains; -) ... Buwahahaha! Pwned!"
la source
ENotImplemented
exception.EProgrammerException
. J'étais en train de taper le code à compléterEProgr...
lorsque la perspicacité du code m'a montréEProgrammerNotFound
. Malheureusement, je ne peux pas utiliserEProgrammerNotFound
, car monEProgrammerException
descend deEInvisibleException
; comme cela signifiait comme un croisement entre un échec d'assertion et uneEAbort
exception (j'ai surpris un programmeur en train de bousiller quelque chose, et je vais m'arrêter ici).Il est utilisé en conjonction avec la technologie "fix-inline" qui nécessite que le programmeur soit lié au fichier exe ;-)
la source
Il a été introduit dans Delphi 2009, toujours présent dans Delphi 2010, et a récemment obtenu un peu plus d' attention sur Internet .
Je pense que c'est un œuf de Pâques, similaire à " EBCAK " (Erreur entre chaise et clavier), et le saut du numéro de version 13 de Delphi .
EProgrammerNotFound
Je ne pense pas que EProgrammerNotFound soit en fait destiné à être utilisé, mais comme il est là, les gens l'utiliseront en plaisantant (comme si l'on mettait un "const False = True; True = not False;" dans un autre code source).
--jeroen
la source
L'origine est discutable, mais elle est connue depuis un moment ...
Marco Cantu a plaisanté à ce sujet lors d'une session "Fun Side of Delphi".
IMO, il devrait être utilisé plus souvent ;-)
Lire sur:
http://wings-of-wind.com/2010/01/12/best-programming-feature-ever/
http://blog.barrkel.com/2008/11/reference-counted-pointers-revisited .html
PS: Je ne pense pas que cela existe en Delphi Prism, FreePascal ou C # (mais ça devrait).
<G>
la source
C'est l'analogue d'exécution de «Erreur de syntaxe: programmeur attendu» du compilateur. ;>
la source
C'est une sorte de blague auto-descriptive, vous pouvez essayer ce code
ou
Ce qui précède fonctionne dans Delphi 10 Seattle.
la source
Avec le programmeur, ce n'est pas le programmeur assis derrière Delphi qui est référencé. Je pense qu'il est utilisé pour le fait que dans D2009 et au-dessus, ils ont prévu (jamais utilisé, je ne sais pas si cela fonctionne) que chaque objet était attendable.
la source
TMonitor.Enter
etTMonitor.Exit
. Et je ne sais pas si c'est un œuf de Pâques ou pas ...Je suis programmeur, suis-je une exception?
Marco Cantù décrit également cela dans son livre «Manuel Delphi 2009» - page 242. Il dit que cela n'a jamais été justifié dans le code source de la VCL.
la source