黑马程序员技术交流社区

标题: 请教error与exception的区别 [打印本页]

作者: 张胜格    时间: 2012-11-2 18:31
标题: 请教error与exception的区别
error和exception有什么区别?

作者: 金曦    时间: 2012-11-2 18:39
Error类和Exception类都继承自Throwable类。

Error的继承关系:
java.lang.Object
  |_java.lang.Throwable
       |_ java.lang.Error
•Exception的继承关系:
java.lang.Object
    |_java.lang.Throwable
           |_java.lang.Exception


二者的不同之处:
Exception:
1.可以是可被控制(checked) 或不可控制的(unchecked)
2.表示一个由程序员导致的错误
3.应该在应用程序级被处理

Error:
1.总是不可控制的(unchecked)
2.经常用来用于表示系统错误或低层资源的错误
3.如何可能的话,应该在系统级被捕捉


作者: HeiMa-黄倲江    时间: 2012-11-2 18:48
Error 异常的特殊性。
Java 异常处理模型中规定: Error 和从它派生而来的所有异常,都表示系统中出现了一个非常严重的异常错误,并且这个错误可能是应用程序所不能恢复的
作者: 邢晏玮    时间: 2012-11-2 18:51
他们都是throwable 的子类,Throwable
                                             |--Error
                                             |--Exception
Error 是严重问题,表示系统级的错误和程序不必处理的异常,是java运行环境中的内部错误或者硬件问题,比如,内存资源不足等,对于这种错误,程序基本无能为力,除了退出运行外别无选择。   Exception是非严重错误 表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序设计的瑕疵而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的。 如抛出异常,或者try{}catch(){} 进行处理
作者: 刘国强    时间: 2012-11-3 18:26
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。 exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
作者: 罗宝    时间: 2012-11-3 21:19
异常基本概念:
* 1、检查性异常(编译异常):java.lang.Exception
* 2、运行期异常:java.lang.RuntimeException
* 3、错误:java.lang.Error
*  异常和错误的顶层类都是java.lang.Throwable类,检查
*  性异常、运行期异常、错误都是这个类的子孙类。
* 异常分类:
* 1、检查性异常:
*  程序正确,但因为外在的环境条件不满足
*  引发,例如:用户错误及i/o问题——程序试图打开一个并
*  不存在的远程Socket端口,或者是打开不存在的文件时,
*  这不是程序本身的逻辑错误,而很可能是远程机器名称错
*  误,对商用软件系统,程序开发者必须考虑并处理这个问
*  题,java编辑器强制要求处理这类异常,如果不捕获这类
*  异常,程序将不能被编译通过
* 2、运行期异常:
*  这意味着程序存在bug,如数组越界、0被除……这类异常需
*  要更改程序来避免,java编译器强制要求处理这类异常。
* 3、错误:
*  错误一般很少见,也很难通过程序解决,它可能源于程序的
*  bug,但一般更可能源于环境问题,如内存耗尽、错误在程序
*  中无需处理,应有运行环境处理
* java中异常处理的两种方法:
* 1、在发生异常的地方直接处理
* 2、将异常抛给调用者,让调用者处理




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