Moin Zusammen,
noch einmal anderes forumliert:
Try/Finally wird auch als Resourcenschutzblock bezeichnet.
Er dient dazu sicherzustellen, das belegte Resourcen, auch im Falle eines Fehlers, wieder freigegeben werden.
Try/Except dient hingegen dazu die Kontrolle über die Steuerung zu behalten falls ein Fehler auftritt, so dass man eben, wie es hier sein soll, einen entsprechenden Return Code setzen, und ansonsten die
Exception unterdrücken kann.
Genau durch die Verwendung dieser Blöcke teilt man dem Compiler ja mit, wo er für eventuelle Fehler zusätzlichen Code generieren soll.
Inwiefern etwas kritisch für die Programmlogik ist, wird der Compiler nicht entscheiden können.
Der Hinweis, dass die Initialisierungszeile nicht mit übersetzt wird kann dann schon einen Hinweis darauf geben, dass man etwas geschrieben hat, dass nicht so läuft wie gedacht.