From 70b048e96e8fe6a2f98a6210ce6d8bafad347602 Mon Sep 17 00:00:00 2001 From: Wouter Zelle Date: Mon, 22 Jan 2007 21:08:25 +0000 Subject: [PATCH] Don't catch Throwables git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@4967 51baf565-9d33-0410-a72c-fc3788e3496d --- pmd/src/net/sourceforge/pmd/PMD.java | 18 ++++++++++++++---- pmd/src/net/sourceforge/pmd/cpd/GUI.java | 5 ++++- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/pmd/src/net/sourceforge/pmd/PMD.java b/pmd/src/net/sourceforge/pmd/PMD.java index ec1a1f6769..83ccdfbdc7 100644 --- a/pmd/src/net/sourceforge/pmd/PMD.java +++ b/pmd/src/net/sourceforge/pmd/PMD.java @@ -380,13 +380,23 @@ public class PMD { ctx.getReport().addError( new Report.ProcessingError(pmde.getMessage(), fileName)); - } catch (Throwable t) { - // unexepected exception: log and stop executor service + } catch (IOException ioe) { + // unexpected exception: log and stop executor service if (debugEnabled) { - t.printStackTrace(); + ioe.printStackTrace(); } ctx.getReport().addError( - new Report.ProcessingError(t.getMessage(), + new Report.ProcessingError(ioe.getMessage(), + fileName)); + + executor.shutdownNow(); + } catch (RuntimeException re) { + // unexpected exception: log and stop executor service + if (debugEnabled) { + re.printStackTrace(); + } + ctx.getReport().addError( + new Report.ProcessingError(re.getMessage(), fileName)); executor.shutdownNow(); diff --git a/pmd/src/net/sourceforge/pmd/cpd/GUI.java b/pmd/src/net/sourceforge/pmd/cpd/GUI.java index 86e74cea87..b9cfacc84c 100644 --- a/pmd/src/net/sourceforge/pmd/cpd/GUI.java +++ b/pmd/src/net/sourceforge/pmd/cpd/GUI.java @@ -559,7 +559,10 @@ public class GUI implements CPDListener { setListDataFrom(cpd.getMatches()); } - } catch (Throwable t) { + } catch (IOException t) { + t.printStackTrace(); + JOptionPane.showMessageDialog(frame, "Halted due to " + t.getClass().getName() + "; " + t.getMessage()); + } catch (RuntimeException t) { t.printStackTrace(); JOptionPane.showMessageDialog(frame, "Halted due to " + t.getClass().getName() + "; " + t.getMessage()); }