W Delphi 2009 SysUtils.pas zawiera to w wierszu 425:
EProgrammerNotFound = class(Exception);
- Czy to po prostu jajko wielkanocne czy coś poważnego?
- Kiedy należy zgłosić ten wyjątek?
- Czy istnieje również w Delphi Prism i / lub Free Pascal?
P: Czy ta klasa wyjątku jest nadal deklarowana w Delphi (obecnie XE7)? O: Tak, i jest to nawet udokumentowane !
Niestandardowy sposób wskazywania błędów oprogramowania.
Możesz użyć EProgrammerNotFound jako alternatywy do wskazywania błędów oprogramowania wykrytych w czasie wykonywania.
Odpowiedzi:
To tylko wynik długiego dnia i trochę oszołomiliśmy. Przez wiele, wiele lat (odkąd byłem w zespole), zawsze żartowaliśmy o zamianie jakiegoś komunikatu o błędzie w kompilatorze na jeden z najczęstszych błędów podobnym komunikatem. Wewnętrznie zawsze żartowaliśmy i żartowaliśmy z różnych rzeczy i ludzi (głównie z samego zespołu). Jeśli nie masz poczucia humoru, jesteś skazany na wczesny grób.
To była prosta rozmowa;
„Och, powinieneś był zgłosić wyjątek EProgrammerNotFound w tej funkcji”.
„LOL! Powinniśmy dodać ten wyjątek i zobaczyć, kto to zauważy”.
„Zastanawiam się, ile będzie spekulacji na temat tego, dlaczego tak jest?”
Więc chyba wszystko, co mogę powiedzieć, to: „Wszyscy zagraliście w nasze ręce; -) ... Buwahahaha! Pwned!”
źródło
ENotImplemented
wyjątku.EProgrammerException
. Wpisywałem kod, aby zakończyć,EProgr...
gdy pokazał mi się wgląd w kodEProgrammerNotFound
. Niestety nie mogę używaćEProgrammerNotFound
, ponieważ mójEProgrammerException
pochodzi zEInvisibleException
; ponieważ oznaczało to skrzyżowanie błędu asercji iEAbort
wyjątku (złapałem programistę, który coś schrzanił, i na tym zakończę).Jest używany w połączeniu z technologią "fix-inline", która wymaga, aby programista był dowiązany do pliku exe ;-)
źródło
Został wprowadzony w Delphi 2009, nadal jest obecny w Delphi 2010, a ostatnio zyskał więcej uwagi w Internecie .
Myślę, że to easter egg, podobny do „ EBCAK ” (Error Between Chair and Keyboard) i pomijanie wersji Delphi numer 13 .
EProgrammerNotFound
Nie wydaje mi się, aby EProgrammerNotFound w ogóle był przeznaczony do użycia, ale ponieważ istnieje, ludzie będą go żartobliwie używać (podobnie jak umieszczanie zbłąkanego "const False = True; True = not False;" w innym kodzie źródłowym).
--jeroen
źródło
Pochodzenie jest dyskusyjne, ale było znane od jakiegoś czasu ...
Marco Cantu zażartował na ten temat podczas sesji „Fun Side of Delphi”.
IMO, powinno być używane częściej ;-)
Czytaj dalej:
http://wings-of-wind.com/2010/01/12/best-programming-feature-ever/
http://blog.barrkel.com/2008/11/reference-counted-pointers-revisited .html
PS: Myślę, że nie istnieje w Delphi Prism, FreePascal lub C # (ale powinno).
<G>
źródło
Jest to analogiczne działanie w czasie wykonywania kompilatora „Błąd składniowy: oczekiwano programisty”. ;>
źródło
Jest to rodzaj samoopisującego żartu, możesz wypróbować ten kod
raise EProgrammerNotFound.Create('Jack is away');
lub
raise ENotImplemented.Create('May be in future this will work');
Powyższe działa w Delphi 10 Seattle.
źródło
W przypadku programisty to nie programista siedzący za Delphi jest przywoływany. Myślę, że jest to wykorzystywane do tego, że w D2009 i nowszych planowali (nigdy nie używali, nie wiem, czy to działa), że każdy obiekt będzie czekał.
źródło
TMonitor.Enter
iTMonitor.Exit
. I nie jestem pewien, czy to jajko wielkanocne, czy nie ...Jestem programistą, czy jestem wyjątkiem niż?
Marco Cantù opisuje to również w swojej książce „Podręcznik Delphi 2009” - strona 242. Mówi, że nigdy nie zostało to użyte w kodzie źródłowym VCL.
źródło