zoukankan      html  css  js  c++  java
  • 异常小总结

    异常类的体系结构如下:

    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抛出异常后,剩余代码不会执行,会停止程序,键入在程序终止之前会申请一些本地资源还未关闭,于是引入了finally子句。

      执行时刻:不管抛没抛异常,finally子句一定执行。

    *带资源的try语句

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

      形式:代码举例

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

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

  • 相关阅读:
    【JVM】程序计数器(四)
    【JVM】运行时数据区概述及线程(三)
    【JVM】类加载子系统(二)
    MyException--org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession. ###
    计算机常用指令大全
    HTML的设计与应用
    想得太多,又做的太少
    互联网数据库分库分表现状及一点思考
    python中的函数与文件操作
    python中的流程控制语句
  • 原文地址:https://www.cnblogs.com/fantasy01/p/3978379.html
Copyright © 2011-2022 走看看