java.lang.RuntimeException: hh msg遺失
at com.citi.risk.scef.limitexposure.config.exception.DBException.test(DBException.java:39) 第一堆棧:throw new RuntimeException("hh");遺失了第一現場
at com.citi.risk.scef.limitexposure.config.exception.DBException.main(DBException.java:29)
小結:msg遺失,堆棧第一現場遺失
項目中做了修複:

-===========================================
java.lang.RuntimeException: hh
at com.citi.risk.scef.limitexposure.config.exception.DBException.test(DBException.java:39) 第一堆棧仍然是throw new RuntimeException("hh")
Caused by: java.lang.ArithmeticException: / by zero
at com.citi.risk.scef.limitexposure.config.exception.DBException.test(DBException.java:37) 好在第一現場出現在Caused By中,但莫名其妙堆棧變長了,不利于檢視
... 1 more
msg遺失,但仍可在Caused By中,找到堆棧第一現場
java.lang.ArithmeticException: / by zero
at com.citi.risk.scef.limitexposure.config.exception.DBException.test(DBException.java:37) 第一堆棧為1/0
msg原汁原味,堆棧第一現場在第一行
實踐中
1)優先直接抛原始異常
2)若就是需要封裝原始異常,務必将原始異常e傳入封裝異常,否則遭到堆棧第一現場遺失