为了账号安全,请及时绑定邮箱和手机立即绑定

思维有些混乱,能否用俗语解释下这篇代码

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;

}

}

}


正在回答

2 回答

test1是抛出一个异常,test2是接收test1的异常并输出运行异常。

0 回复 有任何疑惑可以回复我~
#1

慕粉2133533430 提问者

非常感谢!
2017-05-03 回复 有任何疑惑可以回复我~
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;
		}
	}
}


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

思维有些混乱,能否用俗语解释下这篇代码

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信