hotti: Perl Hashes sortieren

Beitrag lesen

Hi lieber Woodfighter,

Exceptions sind nicht dazu da, Geschäftslogik zu bauen, dafür ist der gesamte Prozess viel zu aufwendig. „an exception is the breaching of predefined assumption of the application“ – Exception Handling: Best Practices

Darüber könnten wir ewig streiten ;)
Fakt ist jedoch: Zur Fehlerbehandlung in Perl-DBI wird RaiseError nach wie vor empfohlen und genau das läuft auf eine Exception.

Aufwändiger Prozess? Nein, im Gegenteil: Aufwändige Kontrollstrukturen entfallen, der Code wird übersichtlicher!

Mein Framework wo ich grad dranbin hat folg. Struktur:

  • jeder Req.URL ruft genau eine Methode (n:1 Beziehung Req:Meth)
  • es gibt mehrere Methoden, je nach Aufgabenstellung
  • jede dieser Methoden erzeugt/verändert den Content (auszugebender HTTP-Message-Body für die Response)
  • jede Methode wird beim Ausführen auf Exception getestet, das sind nur wenige Zeilen Code am Ende der Anwendung!

Wenn in einer der Methoden eine Exception auftritt, führt das NICHT zu einem fatalerror sondern die gesamte Anwendung bleibt in einem stabilen und definierten Zustand.

Der Exception-ErrCode wird im Browser ausgegeben, zum Debuggen kann ich den Trace ausgeben, für den produktiven Einsatz schalte ich den Trace einfach ab.

Ich darf in den Methoden selbst Exceptions mit eigens definierten ErrCode werfen, wenn es nicht mehr möglich ist, Eingabefehler über Kontrollstrukturen abzufangen, es wird einfach eine Exception geworfen womit weiterer in der Methode notierter Code nicht mehr ausgeführt wird, die Methode stirbt, nicht jedoch die Application.

Einfacher gehts nicht ;)

Hotti

--
Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.