java中的异常

1.java异常的概念 

  异常即是程序运行过程中产生的错误,java中的异常类继承关系如下:

 

  Error:程序运行过程中出现的内部系统错误,一旦出现这种错误只能通知用户出现此种错误,无法对此种错误进行处理

  RuntimeException:访问空指针,数组越界访问等。出现此种错误肯定是你的问题,出现此种问题是因为你在程序中未进行相应检查来避免异常。

  其他异常:试图打开一个不存在的的文件,试图在文件尾部读取数据。

  Java中的异常可以分为以下两种类型:

  (1)未检查异常:RuntimeException,Error

  (2)已检查异常:其他异常

  java中的异常处理机制主要是处理程序过程中出现的已检查异常。

2.异常基类

  Throwable

  {

    Throwable(){}

    Throwable(String message){}

    String getMessage(){}

  }

  Throwable是异常的基类,Throwable基类有两个构造函数默认无参构造函数和一个带string参数的构造函数。但是在自定义自己的异常类的时候,一般都是继承Exception类,一般都是加上这两个构造函数。Throwable类里面还有一个getMessage()方法,这个方法可以获得异常的相关信息。

  

3.java中异常的使用

  (1)异常的声明

  void Fun()throws Exception

  {

  }

  此种语法表示声明此方法将抛出一个异常,在此方法中便可以处理或者抛出该异常及其子类异常,一个方法中应该尽量声明该方法中会出现的已检查异常。

  (2)异常的抛出

  void Fun() throws Exception

  {

    throw new Exception();

  }

  抛出异常时需抛出异常的实例

  (3)异常的捕捉

  void Fun() throws Exception

  {

    try{

      throw new Exception();

    }

    catch(IOException e){

    }

    catch(Exception e){

    }

    finally{

    }

  }

  使用try catch语句对异常进行进行捕捉,这两个关键字必须成对出现,try中抛出异常,catch中才能进行对捕捉到的异常进行处理。try抛出异常后,将不再执行抛出异常后面的语句,转到catch块中去执行catch中的语句。

  如果在程序中使用了某种资源,但是程序在运行过程中出现了错误。这时需要释放资源的话,就需要使用finally语句。在程序出现错误后,程序进入到catch语句中执行,然后便会去到finally语句中执行,便可以在finally中释放资源。无论程序中是否出现错误,都会在执行完try和catch中语句后执行finally中的语句。

  一个try可以有多个catch语句,try语句中产生的错误的信息对于catch里面的错误类型进行匹配,匹配到最佳的错误然后进入到这个catch语句块中执行相关的语句。

  在有些时候我们需要在try语句中使用资源,在finally语句块中释放在try语句块中使用的资源。但是有时候当资源使用出错时,finally释放资源也有可能出错,这时候就需要在外层在嵌套一个try,catch语句去捕获释放资源的异常。这样子实现起来非常麻烦。此时就可以采用try(){}语句,在()里面创建需要释放的资源。之后如果在操作过程中出现了异常,便会抛出这个异常,进行资源关闭释放操作,而当资源关闭释放出现异常时,此时便会抑制这个异常,将异常使用addSuppressed方法添加到一个资源释放异常列表中,不再进行抛出。可以使用getSuppressed方法获取列表中的异常。

posted @ 2015-12-19 20:35  守、护  阅读(471)  评论(0编辑  收藏  举报