黑马程序员技术交流社区

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

作者: 韩增亮    时间: 2011-9-29 20:29
标题: error和exception有什么区别?
error和exception有什么区别?
作者: 宁超    时间: 2011-9-29 20:34
Error表示系统级的错误和程序不必处理的异常,
Exception表示需要捕捉或者需要程序进行处理的异常。
你有自行车
车把坏了是error,你的车不能骑了
车把可能因为没有加润滑油,这是异常
Error类和Exception类都继承自Throwable类。
二者的不同之处:
Exception:
1.可以是可被控制(checked) 或不可控制的(unchecked)
2.表示一个由程序员导致的错误
3.应该在应用程序级被处理  
Error:
1.总是不可控制的(unchecked)
2.经常用来用于表示系统错误或低层资源的错误
3.如何可能的话,应该在系统级被捕捉
[ 本帖最后由 宁超 于 2011-09-29  20:36 编辑 ]
作者: 匿名    时间: 2011-9-29 21:53
error 是指程序的错误,是必须要解决的,不然的话,程序就无法正常运行。
Exception 是指程序运行过程出现的异常,可以不处理,用 throw 或 throw 往外抛出异常,不影响程序的运行。
作者: 匿名    时间: 2011-9-30 11:55
error(错误):编译时出现,必须解决才能编译通过
exception(异常):运行时可能出现。
错误是不允许的,异常是允许的。
作者: 匿名    时间: 2011-9-30 15:59
标题: 异常
error是指我们写代码时候的出现的错误 如果我们是用的是ide来编写代码时工具会自动给你提示,这和程序没任何关系,比如一个单词中字母没写全,打标点符号出错,等等!错误是程序员弄出来的bug。

Exception是表示需要捕捉或者需要程序进行处理的异常。这个人为的行为无关,而是由系统决定的!
异常分为编译时异常和运行时异常!
编译时异常: 程序正确,但因为外在的环境条件不满足引发。例如:用户错误及I/O问题,-程序试图打开一个并不存在的远程Socket端口。这不是程序本身的逻辑错误,而很可能是远程机器名字错误(用户拼写错误)。程序开发者必须考虑并处理这个问题。Java编译器强制要求处理这类异常,如果不捕获这类异常,程序将不能被编译。
运行期异常: 这意味着程序存在bug,如数组越界,0被除,入参不满足规范等等!这类异常需要更改程序来避免,Java编译器强制要求处理这类异常。
总结:-------错误: 一般很少见,也很难通过程序解决。它可能源于程序的bug,但一般更可能源于环境问题,如内存耗尽。错误在程序中无须处理,而有运行环境处理。
作者: 匿名    时间: 2011-10-4 16:01
error是必须要解决才能继续让程序运行
exception是可以解决也可以不解决。简而言之就是可也抛可以Try。




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