zoukankan      html  css  js  c++  java
  • Java 异常

    Throwable
                         
    1,程序的非正常情况。

                    2,继承体系:

                              Throwable

                                    |---Error

                                            |---严重的,不可拒的问题。

                                    |---Exception

                                            |---非RuntimeException必须进行处理,否则编译不通过。

                                                           |---throws

                                                           |--- try()..catch(){}

                                            |---RuntimeExcetion

                                                           |---运行期问题,需要修改参数与代码逻辑。

                    3,默认处理方式:

                                默认情况下,JVM会把异常的全路径、位置及原因等信息显示出来。

                                且程序中止,不会执行到下一步。

                    4,格式:

                              1,try..catch..finally

    //基本格式
    try{
        //可能出现的问题
    }catch(异常的对象){
        //对问题的处理
    }finally{
        //释放资源
    }

                      2,变形格式:

                                  try...catch..

                                  try...catch..catch

                                  try...catch..catch..finally

                                  try...finally

                                  JDK7新特性:处理多个异常

                                            catch(ExceptionA|ExcepationB|ExcetionC...e){

                                            }   

                    5,注意事项:

                                 1,final,finally,finalize的特点及区别?

                                            final :是修饰符,它修饰的变量是常,它修饰的类不能被继承,它修饰的方法不能被重写。

                                            finally :是异常处理的一部分,特点是永远会被执行,特殊情况:例如在执行到finally之前退出JVM。

                                            finallize :是Object的方法,用于垃圾回收。

                                 2,执行顺序:

                                           在执行try里面的代码会从上至下,如果遇到问题,就会产生一个异常对象到catch里进行匹配;

                                           有对应的匹配就走对应处理方案。

                                           没有,就向上找父类匹配,如果有就找对应处理方案。

                                           没有,JVM就会采取默认的处理方案。

                                       注意:

                                            如果有多个异常,有子父关系,父异常一定要放最后面。

                                            如果是多个异常,没有子父关系,它们所在的位置没有顺序关系。

                                 3,Exception和RuntimeException的区别?  

                                                Exception:分为编译期异常和运行期异常,编译期异常是必须处理,否则编译不能通过。

                                                RuntimeException: 运行期异常。不需要写异常代码,但有可能需要修正程序参数与代码逻辑。

                                 4,throws和throw的区别?

                                               throws:在方法声明上,后面跟的是异常类名。

                                                           throws后面跟的是编译期异常,调用者是必须要进行处理的。

                                                           throws后面跟的是运行期异常,调用者不需要处理,这种方式没有意义。

                                               throw:  在方法体中,后面跟的是异常对象名。

                                                           throw后面如果抛出的是运行时期异常对象,那么方法上是不需要进行声明的。

                                                           throw后面如果抛出的是编译时期异常对象,那么一般要在方法声明上用throws声明该方法有异常。

                                 5,子类重写父类方法时不能抛出比父类更大的异常。

                                 6,如果catch里面有return,finally还会执行吗?

                                           会执行。

                                      如果执行,是在return之前执行还是在之后执行?

                                          之前。准确的说应该在之间。

                    注意:

                          能自己处理的异常,尽量自己处理。

                          在main方法里尽量不要抛异常。

                         

  • 相关阅读:
    php发送post请求的方法
    跨域请求的三种解决办法
    php验证码+js点击刷新
    13.mysql数据类型
    12.dateformat常用格式
    11.设计的三大范式
    nginx passwd (http://www.voidcn.com/article/p-suebfyqy-nx.html)
    删除文件 过滤某个文件
    mac必装软件
    elasticsearch 安装
  • 原文地址:https://www.cnblogs.com/zhanfuxing/p/3643987.html
Copyright © 2011-2022 走看看