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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 梦幻精灵   /  2014-5-18 21:25  /  3251 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

error和exception有什么区别?

8 个回复

倒序浏览
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.如何可能的话,应该在系统级被捕捉
Java 中定义了两类异常:
  1) Checked exception: 这类异常都是Exception的子类 。异常的向上抛出机制进行处理,假如子类可能产生A异常,那么在父类中也必须throws A异常。可能导致的问题:代码效率低,耦合度过高。
  2) Unchecked exception: 这类异常都是RuntimeException的子类,虽然RuntimeException同样也是Exception的子类,但是它们是非凡的,它们不能通过client code来试图解决,所以称为Unchecked exception 。

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
java 中对于问题的划分分为两种:1,严重的问题2,非严重的问题,对于严重的问题java通过Error类进行描述,对于非严重的问题,java通过Exception类进行描述。
Error:表示不可修复的问题。Exception:表示可以修复的问题。
无论是Error或Exception他们都有共性。
所以Throwable类是java语言中所以错误或异常的超类。它里面定义了这个体系里面的的共行内容,error和exception是它的子类。
Error:一般不编写针对性的代码进行处理。
Exception:可以使用针对性的处理方式进行处理。
回复 使用道具 举报
简而言之:
Error:错误
Exception:异常
回复 使用道具 举报
ERROR不可控,
异常Exception可控
回复 使用道具 举报
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。 exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
回复 使用道具 举报
彭飞 中级黑马 2014-5-19 00:25:43
7#
我记得老师是这样说的,

error 是错误,不可挽回的这种,

Exception 是异常,是可以处理的情况

两者比较,就好比说,电脑被烧掉了,和电脑系统出故障了,
前者是我们不能处理的, 而后者或多或少的能处理。

在Java中,

对error 的出现,是不需要代码编写进行处理
而Exception 就可以编写针对性的代码进行处理。   
回复 使用道具 举报
alax 中级黑马 2014-5-19 04:28:20
8#
error都是继承自父类java.lang.Error,而exception都继承自java.lang.Exception
Error是Throwable的子类,用于标记严重错误。合理的应用程序不应该去try/catch这种错误。绝大多数的错误都是非正常的,就根本不该出现的
Exception 是Throwable的一种形式的子类,用于指示一种合理的程序想去catch的条件。即它仅仅是一种程序运行条件,而非严重错误,并且鼓励用户程序去catch它
Error和RuntimeException 及其子类都是未检查的异常(unchecked exceptions),而所有其他的Exception类都是检查了的异常(checked exceptions).
回复 使用道具 举报
流沙 中级黑马 2014-5-19 06:26:37
9#
简单一句话就可以,Error是你不可解决的异常,Exception是你可以解决的异常!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马