A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 石欣欣 黑马帝   /  2011-9-19 17:16  /  1632 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Demo
{
        int div(int a,int b)
        {
                return a/b;
        }
}

class ExceptionDemo
{
        public static void main(String[] args)
        {
                Demo d=new Demo();
                try
                {
                        int x=d.div(8,0);
                        System.out.println("x="+x);
                }

                catch (ArithmeticException e) //这里用Exception捕捉出现 “不兼容的类型”报错!

                {
                        System.out.println("完毕.");
                }

                               



               

                System.out.println("程序结束。");
        }


}


catch (ArithmeticException e) //这里用Exception捕捉出现 “不兼容的类型”报错!

怎么回事??? 百度上有好多这样的问题,
[ 本帖最后由 石欣欣 于 2011-09-19  17:25 编辑 ]

评分

参与人数 1技术分 +1 收起 理由
admin + 1 得细心点哦,大家说你的没什么问题!

查看全部评分

5 个回复

倒序浏览
黑马网友  发表于 2011-9-19 17:43:29
沙发
我用Eclipse编译通过:L
回复 使用道具 举报
黑马网友  发表于 2011-9-19 18:09:33
藤椅
楼主你把try{}catch(){}去掉就行了
回复 使用道具 举报
黑马网友  发表于 2011-9-19 18:24:54
板凳
ArithmeticException 这个是RuntimeException,运行时错误,也可以不用捕捉的,不过你这个程序我在eclipse上能运行通过啊,没报错啊!!!
回复 使用道具 举报
黑马网友  发表于 2011-9-19 20:39:39
报纸
Java程序的执行过程如出现异常事件,可以生成一个异常类对象,该异常类对象封装了异常事件的信息,并将被提交给Java 运行时系统,这个过程成为抛出异常。

     当Java 运行时系统接收到异常对象时,会寻找能处理这一异常的代码,并把当前异常对象交给其处理,这一过程称为捕获异常。

JDK 中定义了许多异常类,这些类对应了各种各样可能出现的异常事件。

        ERROR:称为错误,由Java 虚拟机生成并抛出,包括动态链接失败,虚拟机错误等,程序对其不做处理。
        Exception:所有异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要用户显式的声明或捕获;
        Runtime Exception : 一类特殊的异常,如被0 除,数组下标超出范围等,其产生比较频繁,处理比较麻烦,如果显示的声明或捕获,将会对程序可读性和运行效率影响很大,因此由系统自动检测,并将她们交给缺省的异常处理程序(用户可不必对其处理)。

       你的这段程序中出现的异常是Runtime Exception ,我运行了一下,没有出现出现你说的问题。运行结果是:

完毕.
程序结束。
回复 使用道具 举报
黑马网友  发表于 2011-9-20 21:21:39
地板
try语句中放可能出现异常的代码,catch是放异常处理的代码。你这个程序运行到这句代码时 int x=d.div(8,0),会生成一个 ArithmeticException对象,然后程序进入catch语句当中,会打印出catch语句里的代码,之后程序执行后面的代码,直至程序结束。 你的程序没有任何问题。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马