T-Rex: Warum eigentlich Exceptions?

Beitrag lesen

Moin Hotti,

Weil das die einzige Möglichkeit ist im Konstruktor einen zwingenden Fehler zu werfen. Stell dir mal eine Klasse vor die einen Schüler verwaltet. Zwingend für diesen SchülerHandler ist das Objekt Schüler. Dieses wird im Konstruktor übergeben (und nur da, weil die Klasse SchülerHandler ohne einen Schüler nicht arbeiten kann). Im Konstruktor wird dann geguckt wie alt der "angebliche" Schüler ist. Da erkennt die SchülerHandler Klasse Moment mal das ist ja gar kein Schüler, weil der Schüler seit 2 Wochen seinen Abschluss hat. Um das zu prüfen musst du entweder nach dem Initialisieren immer zwingend eine Methode aufrufen oder du machst es direkt im Konstruktor. Im Konstruktor hast du aber nur die Möglichkeit einer Exception, um den Fehler nach außen zu bringen.

Ich verwende Exceptions relativ sparsam. Meistens nur um das Programm ab zu brechen. Exceptions behandle ich eigentlich nie. Dass erledigt eine schöne php Funktion, welche die Exceptions die nicht gefangen wurde automatisch behandelt. Dann wird eine 404 Seite angezeigt. Zudem wird die Exception gespeichert.

Man muss jedoch auch sagen was man programmiert. Ich bin (leider) nur mit Webseiten am rumbasteln. Da spielt es keine Rolle wenn mal was schief läuft. Wenn du z.B. statt 10 Kommentare nur 9 siehst ist das in der Regel total egal. Deswegen den Code mit Exceptions aufblähen ist quatsch. Jemand der hingegen Online Banking programmiert wo eine Falsche Buchung im schlimmsten Fall zu einem Millionenschaden führt sollte das ganze System "Fehlerfrei" bekommen. Aber seien wir mal ganz ehrlich, der wird auch besser Bezahlt, bekommt mehr Zeit zum programmieren, mit einem kurzen Satz - lohnt sich da die Fehlerbehandlung.

Gruß
unterbezahlter
T-Rex