Zum ersten Fall:
Ich werfe in so einem Fall eine
Exception, dich ich dann im Aufrufer abfange. Beispielsweise habe ich eine Klasse, in dieser Klasse wird einer Eigenschaft eine Datei zugewiesen, existiert diese Datei nicht, werfe ich eine
Exception, da ohne diese Datei alles weitere sinnlos ist. Somit bricht die Klasse selber alles weiter ab und ich mussmich nur noch darum kümmern die
Exception zu behandeln.
Zum zweiten Fall:
Brauche ich meherer Objekte, erstelle ich alle Objekte gleich am Anfang und gebe sie auch alle im gleichen finally-Block wieder frei.