Scratchbook

Das Leben ist immer anders als die Realität.

Fangversuch

Claude, 19. Januar 2011, 16:12 Uhr

Hab‘ endlich begriffen, was der Sinn von „try-catch“-Konstrukten ist.

iWillFail();
 
iAmClean();

Wenn es tschätteret bei der iWillFail()-Funktion, dann kommt ein Fehler, das Programm stürzt ab. Mir egal, dachte ich früher; wenn ein Fehler passiert, dann passiert eben ein Fehler – ob ich den jetzt noch Abfange ist doch egal… Es brätscht so oder so.

Nun – nicht ganz 🙂

Bei obigem Code rumplet es, ja. Und das Programm stürzt ab, genau.
iAmClean() wird nicht mehr ausgeführt.

try {
	iWillFail();
} catch(e) {}
 
iAmClean();

Hier wird das iWillFail() abgefangen. Es brätscht. „Hmm, dehaut“, sagt sich das Programm und läuft weiter…
iAmClean() wird ausgeführt.

😉

Nützlich bei externen Programmen wie z.B. Tracking-Skripts, wo man nie genau weiss, ob die gut laufen oder nicht. Falls nicht, läuft wenigstens der Rest weiter und es reisst nicht gleich das ganze Programm in den Abgrund…

noelboss

Coolius Claude 🙂