黑马程序员技术交流社区
标题:
异常问题
[打印本页]
作者:
石欣欣
时间:
2011-9-19 17:16
标题:
异常问题
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 编辑
]
作者:
匿名
时间:
2011-9-19 17:43
我用Eclipse编译通过:L
作者:
匿名
时间:
2011-9-19 18:09
楼主你把try{}catch(){}去掉就行了
作者:
匿名
时间:
2011-9-19 18:24
ArithmeticException 这个是RuntimeException,运行时错误,也可以不用捕捉的,不过你这个程序我在eclipse上能运行通过啊,没报错啊!!!
作者:
匿名
时间:
2011-9-19 20:39
Java程序的执行过程如出现异常事件,可以生成一个异常类对象,该异常类对象封装了异常事件的信息,并将被提交给Java 运行时系统,这个过程成为抛出异常。
当Java 运行时系统接收到异常对象时,会寻找能处理这一异常的代码,并把当前异常对象交给其处理,这一过程称为捕获异常。
JDK 中定义了许多异常类,这些类对应了各种各样可能出现的异常事件。
ERROR:称为错误,由Java 虚拟机生成并抛出,包括动态链接失败,虚拟机错误等,程序对其不做处理。
Exception:所有异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要用户显式的声明或捕获;
Runtime Exception : 一类特殊的异常,如被0 除,数组下标超出范围等,其产生比较频繁,处理比较麻烦,如果显示的声明或捕获,将会对程序可读性和运行效率影响很大,因此由系统自动检测,并将她们交给缺省的异常处理程序(用户可不必对其处理)。
你的这段程序中出现的异常是Runtime Exception ,我运行了一下,没有出现出现你说的问题。运行结果是:
完毕.
程序结束。
作者:
匿名
时间:
2011-9-20 21:21
try语句中放可能出现异常的代码,catch是放异常处理的代码。你这个程序运行到这句代码时 int x=d.div(8,0),会生成一个 ArithmeticException对象,然后程序进入catch语句当中,会打印出catch语句里的代码,之后程序执行后面的代码,直至程序结束。 你的程序没有任何问题。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2