java异常

 异常类的层次结构

 

在异常类层次的最上层有一个单独的类叫做Throwable,用来表示所有的异常情况。

每个“异常”类型都是Throwable的子类。

Throwable有两个直接的子类,一类是Exception,是用户程序能够捕捉到的异常情况。我们将通过产生它的子类来创建自己的“异常”。

另一类是Error,它定义了那些通常无法捕捉到的异常。我们要谨慎使用和处理Error子类,因为它们通常会导致灾难性的失败。

在Exception中有一个子类RuntimeException,它是程序运行时对某些错误做出反应而自动产生的。

      常见的异常类:

 ArithmeticException,

 BufferOverflowException

 IllegalArgumentException,

 IndexOutOfBoundsException

 NullPointerException

 

    所有使用try{} catch(Exception e){}的代码块只能找到你一半的错误。但是,是否trycatch Throwable取决于你捕捉它的原因。快速的看一下Error的子类,它们的名字类似VirtualMachineErrorThreadDeathLinkageError。当你想捕获这些家伙们的时候,你要确定你需要捕获它们。因为那些都是很严重的错误。

但是ClassCastException是一个error吗?不完全是。ClassCastException或任何类型的exception只是虚拟机(VMVirtualMachine)让你知道有问题发生的方式,这说明,开发者产生了一个错误,现在有一个机会去修正它。

 

另一方面,error是虚拟机的问题(通常是这样,但也可能是操作系统的问题)。引用Java文档中关于error的说明:“ErrorThrowable的子类,它的出现说明出现了严重的问题。一般应用程序除非有理由,否则不应该捕捉Error。通常这是非常反常的情况。”

 

所以,error非常强大,而且但处理它远比一般开发者想象的要难(当然不是你)。如果你在做一项很简单的工作的话,你认为有必要去处理error?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值