Brutal: Entweder war es sowieso ein UAE, dann schreibe ich einen Dump und terminiere.
Oder ich verwende FatalAppExit. Meistens aber versuche ich dann noch evtl. kritische Ressourcen zuvor freizugeben (falls es die gibt).
Es kommt eben darauf an, wie fatal der Fehler ist. Wenn ich ihn behandeln kann, wird eben eine Exception geworfen.
Wenn ich z.B. ein Programm habe dass auf eine DB-Verbindung (Backgroundthreads etc.) angewiesen ist, und diese reist ab, ist das für mich ein fataler Fehler mit einem Ende und aus.
Hat eine Datei beim Lesen ein falsches Format, dann wird eben eine Exception geworfen und die wird behandelt und angezeigt.
Die Frage ist also: Was ist ein Fehler, der so gravierend ist, dass Du ihn nicht behandeln kannst?
Hast Du kritische Ressourcen die das System blockieren können? Was kannst Du selber noch gesichert aufräumen?
Fenster und Speicher gehören eben nicht dazu, die räumt Windows selber auf, wenn der Prozess terminiert!