黑马程序员技术交流社区

标题: error [打印本页]

作者: 周一川    时间: 2013-4-9 17:19
标题: error
error和exception有什么区别?
作者: 王怀亮    时间: 2013-4-9 17:58
Error(错误)表示系统级的错误和程序不必处理的异常,是java运行环境中的内部错误或者硬件问题,比如,内存资源不足等,对于这种错误,程序基本无能为力,除了退出运行外别无选择。   Exception(违例)表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序设计的瑕疵而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的。
作者: hacket    时间: 2013-4-9 19:36
二者的不同之处:

Exception:

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

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

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


Error:

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

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

3.如何可能的话,应该在系统级被捕捉
作者: 陈丽莉    时间: 2013-4-9 21:18
这个。。 比较提倡遇到问题,自己思考,在论坛搜索后,没有响应的,再提问题;
而且,攒问题一起问虽然也可以,体谅网的问题,但你这些都是不怎么具体的。。 这个帖子就先不加分了。
希望注意一下~
作者: PANZERLEADER    时间: 2013-4-16 17:34
JAVA 异常处理中,如果你的代码你不确定,你可以视图catch (Throwable t)
无论是error还是exception,它都能捕获,但是通常不建议;

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




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