黑马程序员技术交流社区

标题: 关于catch的编译问题 [打印本页]

作者: morning_    时间: 2015-7-28 12:42
标题: 关于catch的编译问题
下边这个程序毕老师在视频里运行没有问题,自己运行就编译报错。。。
class Demo
{
        int div(int a,int b)throws ArithmeticException,ArrayIndexOutOfBoundsException//在功能上通过throws的关键字声明了该功能有可能会出现问题。
        {

                int[] arr = new int[a];

                System.out.println(arr[4]);

                return a/b;
        }
}


class  ExceptionDemo2
{
        public static void main(String[] args) //throws Exception
        {
                Demo d = new Demo();
                try
                {
                        int x = d.div(5,0);
                        System.out.println("x="+x);
                }
               
                catch(Exception e)
                {
                        System.out.println("hahah:"+e.toString());
                }
               
                catch (ArithmeticException e)
                {
                        System.out.println(e.toString());
                        System.out.println("被零除了!!");

                }
                /*
                catch (ArrayIndexOutOfBoundsException e)
                {
                        System.out.println(e.toString());
                        System.out.println("角标越界啦!!");
                }
               
                */
               

                System.out.println("over");

        }
}

E:\heimacode\1.jpg

作者: morning_    时间: 2015-7-28 12:44
编译报错如图。

1.jpg (52.03 KB, 下载次数: 7)

1.jpg

作者: 曾云鹏    时间: 2015-7-28 13:58
我也遇到相同的问题坐等大神解答
作者: lizf2010    时间: 2015-7-28 14:27
因为Exception是所有异常的父类,不能放在第一个catch的,否则下面的就没用了。父类异常必须放在子类异常的下面。
作者: morning_    时间: 2015-7-28 15:38
lizf2010 发表于 2015-7-28 14:27
因为Exception是所有异常的父类,不能放在第一个catch的,否则下面的就没用了。父类异常必须放在子类异常的 ...

奥对对对,看视频的时候没注意老师编译的时候把Excepiton给注释了。。。
作者: lizhichao    时间: 2015-7-28 18:31
你写错了.顺序不对catch Exception写之最后面
作者: lizhichao    时间: 2015-7-28 18:33
morning_ 发表于 2015-7-28 15:38
奥对对对,看视频的时候没注意老师编译的时候把Excepiton给注释了。。。 ...

:郁闷




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2