Author: chatellier Date: 2010-12-01 10:05:30 +0000 (Wed, 01 Dec 2010) New Revision: 317 Log: Catch all exception (even swing edt ones) Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/Coser.java Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/Coser.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/Coser.java 2010-12-01 10:05:08 UTC (rev 316) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/Coser.java 2010-12-01 10:05:30 UTC (rev 317) @@ -71,7 +71,7 @@ Thread.currentThread().setContextClassLoader(coserClassLoader); // init config - CoserConfig coserConfig = new CoserConfig(); + final CoserConfig coserConfig = new CoserConfig(); try { coserConfig.parse(args); } catch (ArgumentsParserException ex) { @@ -84,17 +84,17 @@ coserClassLoader.setValidatorsDirectory(coserConfig.getValidatorsDirectory()); // catch wall application exception - try { - launch(coserConfig); - } - catch (Exception ex) { - if (log.isErrorEnabled()) { - log.error("Global application exception", ex); + launch(coserConfig); + + Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { + public void uncaughtException(Thread t, Throwable ex) { + if (log.isErrorEnabled()) { + log.error("Global application exception", ex); + } + ErrorHelper errorHelper = new ErrorHelper(coserConfig); + errorHelper.showErrorDialog(null, "Global application exception", ex); } - ErrorHelper errorHelper = new ErrorHelper(coserConfig); - errorHelper.showErrorDialog(null, "Global application exception", ex); - } - + }); } /**