黑马程序员技术交流社区

标题: 异常 [打印本页]

作者: lily    时间: 2011-10-9 08:21
标题: 异常
在java中,将异常分为Exception和Error两大类。那么这两者有何区别和联系呢?请举例说明,谢谢 !
作者: 欧阳超    时间: 2011-10-9 08:25
Error是运行时错误,程序设计者不用去管。基本上是没办法解决的。
Exception只是异常,是指程序设计者有能力去解决的,对于这类,则必须去解决.
作者: 宁超    时间: 2011-10-9 08:26
Error表示系统级的错误和程序不必处理的异常,
Exception表示需要捕捉或者需要程序进行处理的异常。
你有自行车
车把坏了是error,你的车不能骑了
车把可能因为没有加润滑油,这是异常
Error类和Exception类都继承自Throwable类。
二者的不同之处:
Exception:
1.可以是可被控制(checked) 或不可控制的(unchecked)
2.表示一个由程序员导致的错误
3.应该在应用程序级被处理  
Error:
1.总是不可控制的(unchecked)
2.经常用来用于表示系统错误或低层资源的错误
3.如何可能的话,应该在系统级被捕捉

作者: 盖保宁    时间: 2011-10-9 08:48
我从教科书中整理如下:
Java提供异常处理机制,使程序能够捕获并处理运行错,保证程序可靠、健壮的运行。
根据错误性质,java将运行错误分为两大类:错误(Error)和异常(Exception)
------------------------------------------分割线-------------------------------------------------------------------
错误(Error)是指程序运行时遇到的硬件错误、操作系统错误、其他软件错误或者操作错误,对于程序而言是致命的,错误将导致程序无法运行。程序本身不能处理错误,只能靠外界干预,否则会一直处于非正常状态。例如,没有找到.calss文件或者。.class文件中没有main()方法————比如说运行时没有main()方法时,产生类定义未找到错误(NoClassDefFoundError);当使用new分配内存时,当内存不够时产生内存溢出错误。
------------------------------
异常(Exception),指在硬件和操作系统运行正常时,程序遇到的运行错。比如除法运算时除数为零、打开文件时,文件不存在,或网络连接中断——反正异常大家都很熟悉了吧




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