newExc.initCause(e); initCause是什么意思?用來干嘛的
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("喝車別開酒");
?}
?public void test2(){
??try {
???test1();
??} catch (DrunkException e) {
???
???RuntimeException newExc =
????new RuntimeException(e);
???//newExc.initCause(e);
???throw newExc;
??}
?}
2018-10-31
test1()函數拋出的是DrunkException異常,test2()函數調用了test1()并對test1()中的異常進行了處理,拋出的是RuntimeException異常,initCase(e)說明了test2()拋出的RuntimeException是由于DrunkException異常引起的。