“throws Exception” wäre doch nur für Exceptions die man auch fangen muss, um die ist eh zu kümmern,
wenn im Moment in tiefen Ebenene viele try/ catch stehen, dann ist da sowieso Arbeit,
es klingt eher nach RuntimeExceptions, die unsichtbar nach oben durchkommen?
wenn wirklich alles in der Main-Methode landet, nur der Main-Thread, dann nur dort ein try/catch nötig, wohl nicht viel anders als setDefaultUncaughtExceptionHandler() hinsichlich Main-Thread,
mit GUI, (im Swing-Fall:) ActionListenern usw. gibt es aber eher für jede Aktion einen eigenen Thread?
dann etwas schwieriger, einen ExceptionHandler überall gesetzt zu haben,
aber ok, setDefaultUncaughtExceptionHandler() soll wohl extra für überall gelten
oder alternativ ein Aufbau, der jeden denkbaren Thread-Start in eine kontrollierte Umgebung mit gemeinsamer Basismethode für solche Aktionen bringt,
darin dann auch Dinge wie Log Start/ Ende, auch im Erfolgsfall ohne jede Exception, Log Parameter/ aufgerufenes Element, Zeitmessung, Nutzungshäufigkeitszählung, User-/ Ressourcen-Nutzungskontrolle, Bereitsstellung von Basisdaten, evtl. DB-Verbindung/ Transaktion und was immer allgemein anfallen könnte, Parallelisierungs-/ Wartefragen,
im Fehlerfall hätte dann man auch den kompletten Kontext für genauere Angaben statt nur Exception-Inhalt + maximal StackTrace zur Verfügung
zu ersetzen wären eine Handvoll Nahtstellen, wie als ActionListener statt Simpel-ActionListener eine Subklasse der eigenen Action-Klasse eben oder eine Hilfsmethode für addActionListener(), welche die Übernahme organisiert,
dazu ListSelectionListener usw., was alles anfällt, in großen Anwendungen paar mehr Hände voll,
falls nicht tiefer in Swing irgendwo alles von Swing auf einmal einzufangen, aber eigene Listener-Klassen/ Hilfsmethoden machen sich auch nicht schlecht, um etwa ActionEvent bei jedem ActionListener wegzuzaubern, mit Java 8-Abkürzung freilich nicht mehr so nervig wie früher,
genauso eigene gestartete Threads, statt simples Runnable die eigene Run-Klasse nutzen bzw. wieder eine Hilfsmethode die das normale Runnable nicht direkt an Thread übergibt, sondern eigenes zwischenschaltet