问答详情
源自:1-7 Java 中的异常链

哪位大哥能帮我看下 为什么编译器为一直报错!

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包围

明明已经包围了啊!!


提问者:qq_我没有腰啊_0 2017-09-06 00:13

个回答

  • qq_我没有腰啊_0
    2017-09-12 22:31:58

    public void test1()throws Exception{   

    这里改成public void test1()throws DrunkException{  就好了

    但是我不知道为什么不能直接抛出基类。。。

  • 慕粉4274774
    2017-09-06 15:03:06

    上面好像没错,你看看下面的代码有没有打错?

    public class DrunkException  extends Exception{

        public DrunkException(){

            super();

        }

         

        public DrunkException(String message){

            super(message);//调用一下父类的有参构造方法

        }

       


  • 慕雪1464563
    2017-09-06 09:00:52

    自定义的异常没有写吧