newExc.initCause(e); initCause是什么意思?用來(lái)干嘛的
public class ChainTest {
?public static void main(String[] args) {
??ChainTest ct = new ChainTest();
??try{
???ct.test2();
??}catch(Exception e){
???e.printStackTrace();
??}
?}
?public void test1() throws DrunkException{
??throw new DrunkException("喝車(chē)別開(kāi)酒");
?}
?public void test2(){
??try {
???test1();
??} catch (DrunkException e) {
???
???RuntimeException newExc =
????new RuntimeException(e);
???//newExc.initCause(e);
???throw newExc;
??}
?}
2018-10-31
test1()函數(shù)拋出的是DrunkException異常,test2()函數(shù)調(diào)用了test1()并對(duì)test1()中的異常進(jìn)行了處理,拋出的是RuntimeException異常,initCase(e)說(shuō)明了test2()拋出的RuntimeException是由于DrunkException異常引起的。