Die Vermeidung von Exceptions im regulären Programmablauf ist aus vielerlei Gründen anzustreben. Einer ist, dass ihre Verarbeitung vom Compiler bzw. JIT vergleichsweise schlecht optimiert wird, was ja auch logisch erscheint: Wenn das Kind bereits in den Brunnen gefallen ist (z.B. kein Arbeitsspeicher mehr frei) sollte man nicht mehr unnötig herumspielen (was möglicherweise zusätzlich Speicher allokiert), das macht die Sache tendenziell eher schlimmer.Es macht auch keinen Sinn, wenn eine Anwendung im regulären Betrieb 200 Exceptions in der Minute loggt; mit dem Logfile kann man auch keine Fehlerdiagnose mehr durchführen, weil man die wahren Probleme dann darin auch nicht mehr findet. Ein anderer Grund ist, dass es in Eclipse (in anderen IDEs wahrscheinlich ebenfalls) einen Schalter gibt, dass die Anwendung bei jeder auftretenden Exception anhält. Auch das kann man nicht mehr nutzen, wenn Exceptions im Regelbetrieb andauernd geworfen werden.
Die Protokollierungspflicht sollte präzisiert werden: es gibt heute schon Code,Auf Basis der unglücklich formulierte Coding Guidelines ("Sie [Exceptions] müssen
bei dem Exceptions Teil des normalen Programmablaufs sind. Da wäre eine
Protokollierung kontraproduktiv, da sie unnötig Ressourcen kostet. Textvorschlag:
"Unerwartete Exceptions müssen immer im Log registriert werden"