码迷,mamicode.com
首页 > 其他好文 > 详细

异常小总结

时间:2014-09-18 00:45:52      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   os   使用   java   ar   文件   

异常类的体系结构如下:

Throwable

|-Error

|-Exception

  |-IoExcetion

  |-SQLException

  |-RuntimeException

*派生与Error与RuntimeException(运行时异常)的异常叫未检查异常,不用程序员处理,直接虚拟机会进行处理,这也就是说程序本身的错误

  其他的异常叫做已检查异常,必须由程序员进行处理

常见的异常如下:

  类型转化异常  ClassCastException

  数组越界异常  ArrayIndexOutOfBoundsException

  空指针异常   NullPointerException

以上都是派生与RuntimeException

  文件尾读取数据异常      EOFException

  打开不存在的文件异常     FileNotFoundException

  查找不存在的Class对象异常   ClassNotFoundException   

*使用异常的4种情况:

  调用一个抛出已检查异常的方法

  程序运行过程中发生错误

  程序出现错误

  JAVA虚拟机和运行库出现内部错误

*throw与throws区别

throw用于抛出异常,throws用于声明异常,即在方法体后注明可能抛出的异常

*try catch字句

  *可以捕获多个异常

    try{}

    catch(e){}

    catch(e){}

    ....

  *可以合并异常

    try{}

    catch(e1 | e2){}  

  *catch子句可以再次抛出异常

    方式:一般把原始异常当作再次抛出异常的原因

    代码举例:

...
catch(e)
{
    Throwable se = new ServletException("data error");
    se.initCause(e);
    throw se;
}

    当捕获异常se后,可以利用如下代码获得原始异常

Throwable e = se.getCause();

*finaly子句

  当利用try catch抛出异常后,剩余代码不会执行,会停止程序,键入在程序终止之前会申请一些本地资源还未关闭,若catch并未捕获到这个异常,这样对这些资源还欠缺处理,于是引入了finally子句。

  执行时刻:当try抛出异常,但是catch没有捕获异常,此时finally子句执行。

*带资源的try语句

  使用条件:所使用的资源类实现了一个AutoCloseable接口类,其中有个方法void close() throws Exception,这是JDK7中的特性

  形式:代码举例

try(Scanner in = new Scanner(new FileInputStream("/....")));
{
    while(in.hasNext())
        ....
}

  此中使用形式,确保发生任何情况发生异常都会被关闭

 

异常小总结

标签:style   blog   color   io   os   使用   java   ar   文件   

原文地址:http://www.cnblogs.com/fantasy01/p/3978379.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!