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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周一川 中级黑马   /  2013-4-9 17:19  /  1033 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

error和exception有什么区别?

点评

虽然攒问题的情况也有,都不怎么具体的话。。  发表于 2013-4-9 21:16

4 个回复

倒序浏览
Error(错误)表示系统级的错误和程序不必处理的异常,是java运行环境中的内部错误或者硬件问题,比如,内存资源不足等,对于这种错误,程序基本无能为力,除了退出运行外别无选择。   Exception(违例)表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序设计的瑕疵而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
二者的不同之处:

Exception:

1.可以是可被控制(checked) 或不可控制的(unchecked)

2.表示一个由程序员导致的错误

3.应该在应用程序级被处理


Error:

1.总是不可控制的(unchecked)

2.经常用来用于表示系统错误或低层资源的错误

3.如何可能的话,应该在系统级被捕捉

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
这个。。 比较提倡遇到问题,自己思考,在论坛搜索后,没有响应的,再提问题;
而且,攒问题一起问虽然也可以,体谅网的问题,但你这些都是不怎么具体的。。 这个帖子就先不加分了。
希望注意一下~
回复 使用道具 举报
JAVA 异常处理中,如果你的代码你不确定,你可以视图catch (Throwable t)
无论是error还是exception,它都能捕获,但是通常不建议;

因为Error官方文档上有直接的阐述
  1. public class Errorextends ThrowableError 是 Throwable 的子类,用于指示合理的应用程序不应该试图捕获的严重问题。大多数这样的错误都是异常条件。虽然 ThreadDeath 错误是一个“正规”的条件,但它也是 Error 的子类,因为大多数应用程序都不应该试图捕获它
复制代码
所以尽量的解决Error,但是有些突发情况下可以是catch(OutOfMemoryError e),因为有可能内存溢出场景是不确定的。比如android中图片内存溢出,有可能是你代码的原因,但是却在不同的机器上表现,所以在你没办法解决问题的时候,可以试图去 catch Throwable  ,能保证不会出现崩溃这种情况。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马