Synopsis: | Caught exception is rethrown, original stack trace may be lost |
Language: | Java |
Severity Level: | 2 |
Category: | Design |
Description: |
Throwing a new exception from a catch block without passing the original exception into the
new Exception will cause the true stack trace to be lost, and can make it difficult to
debug effectively.public class Foo { void good() { try{ Integer.parseInt("a"); } catch(Exception e){ throw new Exception(e); } } void bad() { try{ Integer.parseInt("a"); } catch(Exception e){ throw new Exception(e.getMessage()); } } } |