异常

异常结构图

异常定义:

       程序在运行期间,发生了不可预测的事件,它阻止了我们程序的正常运行!

异常处理机制:

  在我们的程序发生异常之后,代码按照我们事先设计的顺序继续执行!

异常的分类

       所有的异常和错误的父类====》Throwable

       Exception的分类:

         01.运行时异常   RuntimeException

          02.受查异常  CheckException

异常和异常链的使用:

    异常处理分为两种方式:

    01.try   catch   finally

    02.throw抛出异常,throws声明异常

    try

    01.不能单独使用,必须和catch或finally联合使用

    02.存放可能出现异常的代码

    03.如果try代码块出现了异常,会去匹配catch代码块对应的异常类型,没有匹配的类型,直接进入finally 

    catch

    01.可以有多个catch块,每个catch都能捕获一个异常

    02.多个catch块捕获的异常类型不允许重复

    03.多个catch块的异常类型 必须是从小到大排列

    04.如果多个catch块都能匹配,默认使用第一个匹配的

    05.如果try中都没有发生异常,catch代码被忽略

    06.每个代码块中的变量 都是 私有的

finally

    01.无论是否发生异常,都会执行的代码块

    02.如果遇到System.exit(0)或者System.exit(非0)不会执行finally

    03.如果try代码块中出现了 return 也是先执行finally之后再跳出方法

    04后续关闭流,释放数据库连接资源

throw 抛出异常

      01.语法 throws new 异常类型(异常信息)

      02.异常类型必须是Exception或者其子类

      03.一个throw只能 抛出一个异常

      04只能出现在方法体内

      05.针对抛出的异常 我们能使用两种方式解决

               001.try   catch   finally

               002.使用throws声明异常

       06.抛出异常的类型必须是 声明异常类型本身或者子类

throws声明异常

         01.语法 throws 异常类型1,异常类型2....

         02.定义方法的参数列表之后,可以声明多个异常

         03.throws所在的方法不处理异常,方法的调用者去处理异常

         04.如果是在main方法中使用throws,则是JVM来处理异常

异常链的使用

         把我们捕获的异常包装成一个新的异常,继续抛出!新异常中记录了异常的原始信息,便于我们找到根本原因!

自定义异常

      01.异常类必须是Throwable的子类

      02.自定义异常类 继承 RuntimeException ,Exception

   

原文地址:https://www.cnblogs.com/liutianci/p/8042626.html