异常:不正常,我们在写代码的时候出现的编译或者运行时的错误

 

异常的体系结构:

  Throwable(最顶层):

    Error:出现不能处理的严重问题,预编译不会通过的

    Exception:可以处理的问题

      异常处理方法:

        捕获:try...catch语法

           try...catch...finally

            执行顺序,先执行try,如果发现异常,异常下面的代码不再执行,跳入catch语句中

                      没有发现异常,直接try语句执行结束后,不再执行catch

                      如果有finally,无论是否有异常,都会执行finally

            多个catch之间可以有子父类

            平级之间没有顺序关系

            如果有子父类,父类异常必须抛在后面

            finally通常用于释放资源与清理垃圾

        分类:

          运行时异常:RuntimeException的子类就是运行时异常,在编译时期可以选择处理或者不处理

          编译时异常:是Exception的子类,非RuntimeExcpetion的子类,在编译时期必须处理

      Throwable的常用方法:

        String getMessage()——原因

        String toString()——类型和原因

        void printStackTrace()——类型,原因和位置

        抛出去

          当我们不想处理异常,或者没有能力处理的时候,我们可以选择抛出异常,

          谁调用方法谁处理异常

          使用关键字throws方法的声明处抛出异常类型

 

自定义异常:

  throws:处理异常的一种方式,把异常抛出,由调用者处理

  throw:制造异常的方法,并结束了方法

    throw new RuntimeExpection("自定义运行时异常的具体描述");

    throw new Expection("自定义编译时异常的具体描述");——还要在方法声明出抛出异常

创建一个异常类:

  继承——RuntimeExpection/Expection

  使用工具生成一个无参与由字符串参数的构造函数,都需要调用父类的构造函数

  

posted on 2019-11-11 23:11  大景少  阅读(108)  评论(0编辑  收藏  举报