黑马程序员技术交流社区

标题: error和exception有什么区别? [打印本页]

作者: 周胜    时间: 2011-12-10 19:48
标题: error和exception有什么区别?
本帖最后由 周胜 于 2011-12-10 21:19 编辑

都是错误。两者有啥区别啊~~
作者: ◇半度微凉    时间: 2011-12-10 19:58
本帖最后由 ◇半度微凉 于 2011-12-10 20:04 编辑

Error表示系统错误或者底层资源错误,是java运行环境中的内部错误或者硬件问题,比如,内存资源不足等,对于这种错误,程序不必处理,也基本无能为力,除了强行退出外别无选择。Exception则表示的是需要程序捕捉或处理的异常,它处理的是因为程序设计的不妥或者错误而引起的问题,是程序必须处理的。
作者: 吴上储    时间: 2011-12-10 20:10
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
作者: 武超    时间: 2011-12-10 20:10
本帖最后由 武超 于 2011-12-10 20:11 编辑

error 表示是一种严重问题,但致命的错误,很难被处理。比如说内存溢出。很难去处理这样的情况。
exception 表示一种可以被解决的问题,是人为导致的问题。也就是说,它表示如果程序运行正常,就不会发生的情况,如数组下标越界,读取文件时文件不存在等。
作者: 唐秀启    时间: 2011-12-10 20:15
对于严重的问题,java 通过Error类进行描述
        对于Error一般不编写针对性的代码对其进行处理。

对于非严重的,java通过Exception类进行描述。
        对于Exception可以使用针对性的处理方式进行处理。
作者: t_mac    时间: 2011-12-10 20:29
Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形。应用程序不应该抛出这种类型的对象(一般是由虚拟机抛出)。如果出现这种错误,除了尽力使程序安全退出外,在其他方面是无能为力的。所以,在进行程序设计时,应该更关注Exception体系。
Exception体系包括RuntimeException体系和其他非RuntimeException的体系 :
① RuntimeException:RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等。处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。
②其他非RuntimeException(IOException等等):这类异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。
作者: 周胜    时间: 2011-12-10 21:18
恩 谢谢!!~




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