Das Problem was hier vorliegt: Du unterscheidest nicht, welche
Exception aufgetreten ist. Du gehst in deinem Except Block fest davon aus, dass es ein Bereichsfehler/Indexfehler ist. Was aber wenn der Speichermanager das Create gar nicht durchführen konnte? Dann ist deine SL Variable so oder so im Eimer, egal wie rum except und finally stehen.
Grundlegend: Ich würde niemals mit Objekten in einem
Exception Abschnitt arbeiten aus dem geschützten/umfassten Codebereich. Wenn gibt es Exceptions welche zusätzliche Informationen tragen bzw. tragen können. Aber ein Zugriff auf die Objekte aus dem geschützten Bereich im
Exception - Behandlungsbereich ist nicht sicherer als innerhalb des Blockes.
Eine
Exception ist eine definitive Ausnahmesituation. Wenn bei dir die Küche brennt willst du dir bestimmt auch nicht vorher nochmal in Ruhe die Hände waschen bevor du dein Telefon anfässt um die Feuerwehr zu rufen - nur weil du es sonst auch immer machst (um dein Handy sauber zu halten). Wenn eine Ausnahmesituation auftritt, dann benutze verlässliche Quellen und das ist in diesem Falle die
Exception selbst.
Zitat von
mjustin:
Preisfrage: wird der Fehlerdialog angezeigt?
Antwort D der 3 möglichen: Der Code geht so nicht durch das QM und wird dir um die Ohren gehauen.