消失的 Exception
在 Java 的開發裡面,常常會遇見 Exception 的連鎖效應,也就是當 Exception A 發生的時候,觸發了 Exception B 再觸發了 Exception C ,最後 Caller method 只會收到 Exception C ,無法知道 Exception A 才是真正的原因。
1 | public void demoException() throws Exception{ |
此時此刻,調用方只會收到 Exception C ,其它的 Exception 都被吞掉了。
NestableException 粉墨登場
這個問題,老祖宗們都已經幫忙解決過了, Apache Common Lang 在 1.0 以後就提供了 NestableException,改寫上面的方法就會變成
1 | public void demoException() throws Exception{ |
最後再透過 e.printStackTrace();
就可以將整體的 Exception 歷程給呈現出來。