第十一章 异常处理

来源:互联网 发布:stc单片机iap远程升级 编辑:程序博客网 时间:2024/04/30 01:31

异常(Exception)是程序在执行过程中所产生的问题

问题    错误(Error)

           异常(Exception)     编译期异常(检查异常checked Exception)

                                              运行期异常(不检查异常unchecked Exception)

凡是能够用代码去纠正的就是异常,错误是不能用代码去解决的问题


异常类型  父类Thowable类     Error

                                                Exception      Runtime Exception

                                                                      非运行期异常


异常处理:①事前处理(提前加判断)

                  ②事后处理(产生异常对象以后,用try----catch----finally)

                       try {

                               正常情况下有可能发生异常的代码

                       } catch (异常类型的引用){

                               处理代码

                       } finally {

                                不管 是否发生异常都必须要执行的代码

                       }  

                       异常捕获不一定必须要在错误的地方,只要在异常返回给JVM之前,在任何位置异常都能try /catch

                       try块后面可以接多个catch块,但是catch块不能以简单的任意顺序列出,如果catch块有继承关系,要把子类异常卸载父类异常之前

                       finally就算前面有return或break等跳转语句,也要执行finally之后再跳转,只有exit能提前跳出

                       finally中一般写的都是资源的清理,通道的关闭,各种连接用完后的关闭


                       语法上:try----catch-----finally不能单独存在

                                     try---catch;try -----finally; try -----catch-----finally都可以

                 ③抛出异常:关键字:throw

                      throw:写在方法体当中,后面接的是一个异常对象,一旦执行到这句代码,就会真正执行异常抛出这个动作

                                  若throw抛出的是一个runtimeException时,编译器不会强制要求写throws,写了也不会警告

                                  当throw后面跟的是编译期异常(包括exception),编译器回强制要求本方法后面加上throws

                      throws:写在方法声明的最后,后面跟的是异常的类名,可以跟多个,中间用逗号隔开

                                    警告方法的调用者本方法有可能回出现某种或某些类型的异常


自定义异常:

      ①首先要继承Throwable或者Exception,没有继承就不是异常

      ②要书写带参构造,将已发生的异常对象的信息封装到自定义异常对象身上

          书写带参构造,讲业务异常的信息装入自定义异常对象身上

     ③添加自定义异常的特有方法

0 0
原创粉丝点击