慕粉2133533430
2017-05-02 21:06
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) {
// TODO Auto-generated catch block
RuntimeException newExc=new RuntimeException(e);
//newExc.initCause(e);
throw newExc;
}
}
}
test1是抛出一个异常,test2是接收test1的异常并输出运行异常。
public class ChainTest {//先看test1的注释,再看test2的,再看main函数 public static void main(String[] args) { ChainTest ct=new ChainTest(); try{ ct.test2();//test2丢出了这个异常,所以由父类捕捉 }catch(Exception e){ e.printStackTrace(); } } public void test1() throws DrunkException{//test1我们手动抛出了一个异常,由于使用了throws DrunkException,就给父类捕捉这个异常 throw new DrunkException("开车别喝酒"); } public void test2(){ try { test1();//调用了test1,test1我们手动抛出了一个异常,所以由test2这个父类来捕获这个异常。还有test2应该也要使用throws DrunkException 吧 } catch (DrunkException e) { // TODO Auto-generated catch block RuntimeException newExc=new RuntimeException(e); //newExc.initCause(e); throw newExc; } } }
Java入门第三季
409792 学习 · 4340 问题
相似问题