首页 > 代码库 > java 异常

java 异常

Java中的异常类都继承自Trowable类。一个Throwable类的对象都可以抛出(throw)

 

Throwable对象可以分为两组。一组是unchecked异常,异常处理机制往往不用于这组异常,包括:

  • Error类通常是指Java的内部错误以及如资源耗尽的错误。当Error(及其衍生类)发生时,我们不能在编程层面上解决Error,所以应该直接退出程序。
  • Exception类有特殊的一个衍生类RuntimeException。RuntimeException(及其衍生类)是Java程序自身造成的,也就是说,由于程序员在编程时犯错。RuntimeException完全可以通过修正Java程序避免。比如将一个类型的对象转换成没有继承关系的另一个类型,即ClassCastException。这类异常应该并且可以避免。

剩下的是checked异常。这些类是由编程与环境互动造成程序在运行时出错。

 

 

异常处理几点说明

异常对象在系统运行过程中自动创建,当然所创建的对象类型是根据不同类型的异常而有差异的,系统会把出现异常的具体信息以及导致异常的原因写在这个对象中。

异常对象主要有两个属性:

     a. detailMessage   该异常的具体信息

     b. cause           说明了导致这个异常的原因。

                   

 异常位置的跟踪和定位:

     e. printStackTrace(); 

     由于try块中可能有多条语句,异常爆发了,对象被抛出了,到底是那条语句导致的呢?

  printStackTrace()会详细的告诉你对应的位置。

 

  异常被捕获处理后,异常try…catch..结构后的语句将继续运行,程序不会中止。

  但是try块中发生异常的语句之后的语句将不再运行。

 

坚强的finally块,其只怕System.exit(0), 无论try块中有异常,无异常,有无漏网之鱼均可运行,也不怕try中中途return.

 为了有效的释放在try语句运行过程中申请的资源,finally块为此而成.

 

运行时异常(Runtime Exception)

所有运行时异常 extends RuntimeException.

运行时异常是在程序运行过程中爆发的异常,其相对影响面小,问题不严重,一般不影响程序继续运行。

运行时异常无需捕获,自动抛出,也无需throws声明。

 

检查异常  (checked Exception)

检查异常 extends Exception

其要么try…catch..捕获,要么在方法签名末尾显式申明抛出。