Function Try Blocks
-
Bei Constructoren kann man ja so exceptions in der InitialisiererListe fangen:
class A: public Base { public: A() try :Base() { } catch(...) { } };
Gibt es abgesehen von Constructoren einen Anwendungsfall für Function-Try-Blocks, oder ist ansonsten
void f() try { ... } catch(...) { ... }
identisch mit
void f() { try { ... } catch(...) { ... } }
-
Gibt es abgesehen von Constructoren einen Anwendungsfall für Function-Try-Blocks
Es gibt eigentlich überhaupt nur wenige Anwendungsfälle für Function-Try-Blocks. Das einzige was man im Konstruktor-Fall sinnvolles machen kann ist eine die aktuelle Exception durch eine andere ersetzen (und vielleicht noch das Ereignis loggen.)
Du kannst aber weder die Exception endgültig verarbeiten noch irgendwelche Resourcen freigeben.Für Funktionen sind function try-Blocks letztlich nutzlos. Es gibt hier nichts was ein Function-Try-Block fangen kann, was nicht auch von einem regulären Try-Block in der Funktion verarbeitet werden könnte.