public class HelloWorld{
public static void main(String []args){
HelloWorld hello=new HelloWorld();
try{
hello.test2();
}
catch(Exception r){
r.printStackTrace();
}}
public void test1()throws Exception{
throw new DrunkException("开酒别喝车");
}
public void test2(){
try {
test1();
} catch (DrunkException e) {
// TODO 自动生成的 catch 块
RuntimeException newrun=new RuntimeException("司机一滴酒,亲人两行泪");
newrun.initCause(e);
throw newrun;
}
}
}
在test2里面 会一直报错 test1();需要添加抛出说明或者用try、catch包围
明明已经包围了啊!!
public void test1()throws Exception{
这里改成public void test1()throws DrunkException{ 就好了
但是我不知道为什么不能直接抛出基类。。。
上面好像没错,你看看下面的代码有没有打错?
public class DrunkException extends Exception{
public DrunkException(){
super();
}
public DrunkException(String message){
super(message);//调用一下父类的有参构造方法
}
自定义的异常没有写吧