zoukankan      html  css  js  c++  java
  • java异常 之 异常的层次结构

    一:起因

    (1)近期在用java处理分析各种数据,碰到了一些异常,如parse()异常 ParseException,valueOf()NumberFormatException  IllegalArgumentException异常。NullPointerExcetion  IndexOutOfBoundsExceptionFileNotFoundException等

    (2)异常不能随意捕获的。不能随意的写catch(***Exceptionex){} ;仅仅有,有可能抛出对应的异常,才写catch的。否则多余的catch eclipse也会报错的

    Java中,异常分为受检查的异常,与执行时异常.

    (3) 多个异常捕获时的顺序,先子类异常,再父类异常……最后是Exception基类异常


    二:在Java中,异常分为受检查的异常,与执行时异常.

     

             两者都在异常类层次结构中.以下的图展示了Java异常类的继承关系.

    1)粉红色的是受检查的异常(checkedexceptions),其必须被try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被捕捉处理,命名为

    CHeckedException 是由于Java编译器要进行检查,Java虚拟机也要进行检查,以确保这个规则得到遵守.

    2)绿色的异常是执行时异常(runtime exceptions),须要程序猿自己分析代码决定是否捕获和处理,比方 空指针,被0除...而声明为Error的。则属于严重错误,须要依据业务信息进

    行特殊处理,Error不须要捕捉。

     

    想要了解很多其它,请參考: Top 10Questions about JavaExceptions

    三:

    (1)今天看到理工大学的JAVA试题:

        当使用多个catch 语句捕获多个异常时。Java规定捕获 Exception的 catch 语句必须排在最后,例如以下所看到的:

        try { …… }

        catch(ClassCastException ex){ …… }

        catch(NumberFormatException ex){ …… }

        catch(Exception ex){ …… }  // 此句必须放在最后!

       由于Exception这个是那几个异常的 父类或者基类!那几个异常都是他的子类。Exception放在最前面后面就没有机会了,其把全部的异常都捕获了。

       即多个异常捕获时的顺序,先子类异常。再父类异常……最后是Exception基类异常。

  • 相关阅读:
    为当前用户创建cron服务
    PHP程序员的简单运维
    mysql事件学习
    ubantu16.04服务器错误提示没有安装php_fileinfo扩展
    XAMPP配置vhosts多站点/绝对正确
    yii2框架获取刚插入数据库的id (原创)
    ajax详解
    Git密钥生成步骤SSH Key
    jquery禁用select和取消禁用
    a标签实现不跳转点击
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5209742.html
Copyright © 2011-2022 走看看