关于exception与error

    从字面意思看,exception是异常,异常并不是错误,很明显,异常是可以修正的。比如打开一个文件,用户选择了一个错误的路径时,程序会抛出FileNotFoundException的异常,这是告诉应用程序,文件没有找到,通过捕捉这个异常,程序可以提示用户文件未找到,程序会继续运行。而error是错误,是虚拟机或者操作系统的问题,它的出现表示出现了严重的问题,一般应用程序不应该捕捉它。

    下面来看看java语言的异常的体系结构:

    exception和error都是继承自Throwable,都是可以抛出的。这2个子类将java中可抛出的错误或者异常一分为二,exception代表正常的Throwable,error则代表反常的Throwable。两者抛出方式有点不同:抛出error的方法不需要对此进行声明(换句话说,这是一个unchecked exception)

   

    VirtualMachineError,ThreadDeath,LinkageError是error的子类,你确定要捕捉这些错误吗?呵呵!

 

    exception产生了各种各样的子类,其中RuntimeException(运行时异常),其子类有NullPointerException,ClassCastException和IndexOutOfBoundsException。他们跟error的表现一样,是不可控制的(unchecked exception)。

    虽然unchecked exception能够catch,但是这只是一个不完整的解决办法。指不定程序的某个地方突然抛出一个呢,让人措手不及。不过有个办法可以处理这种情况,请参考如下代码。

   

 

   总结:  

ErrorException都继承自Throwable,他们下列不同处: 

Exceptions

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

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

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

Errors

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

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

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

  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值