zoukankan      html  css  js  c++  java
  • 异常

    一.行为的意外结果可以分为两类

        可以处理的意外结果称为异常(Exception)

        处理不了的意外结果称为错误(Error)

        异常是一中特殊的对象,类型为java.lang.Exception或器子类

       二.处理

      1.捕获异常

       try-->执行可能产生异常的代码

       catch-->捕获异常

       finally-->无论是否发生异常,代码总能执行

      2.声明异常

       throws-->声明方法可能要抛出的各种异常

      3.抛出异常

       throw-->手动抛出异常
     三.try-catch

       情况一:

          try(无异常)     catch     try-catch后代码

            |                           |

             ---------------------------

             

    情况二:

          try(有异常)                    catch ---->try-catch后代码

            |                                |

             -->产生异常对象-->异常类型匹配-->
       情况三:

           try(有异常)   catch ---->try-catch后代码

             |

              --产生异常对象-->异常类型不匹配-->代码中断
     四.在catch块中处理异常

        1.加入自定义处理信息       System.err.ptintln(“自定义内容”)

        2.调用方法输出异常信息       e.printStackTrace()

        3.异常对象常用方法       String getMessage();

          *返回异常信息描述字符串是printStackTrace()输出信息一部分
     五.Java异常机制

        1.代码运行到可能出现异常时,由程序或Java抛出异常对象,异常对象会记录相关信息

        2.异常对象抛出后,会去寻找异常处理的相关代码(catch),如果找到异常结束

        3.如果未找到,异常对象会继续上抛,寻找异常处理代码

        4.如果到main还未找异常抛给到异常处理代码,就会有main将异常抛给虚拟机     5.异常抛出的每一层代码都会中断
     六.常见异常类型
            异常类型                                  说明

            Exception                        异常层次结构的父类

       ArithmeticException                    算术错误情形,如以0做除数

       ArrayIndexOutBoundsException             数组下标越界

       NullPointerException                   尝试访问null对象成员

       ClassNotFoundException                 不能加载所需类

      IllegalArgumentException                方法接收到非法参数

       ClassCastException                   对象强制类型转换出错

       NumberFormatException                  数字格式化转换异常,如把“ABC”转为数字
     七.finally

       1.是否发生异常都会执行finally块中的代码

       2.唯一不执行的情况:System.exit(1);
     八.存在return的try-catch-finally块

       try--->产生异常对象--->异常类型匹配--->进入catch--->

       执行finally--->执行return退出方法
     九.try、catch、finally使用规则

        try{

         //必须出现,且只能出现一次

        }catch{

         //可以出现0~n次,如果没有catch就必须有finally

        }finally{

         //可以出现0~1次

        }

       十.多重catch块

       1.排列catch语句顺序:先子类后父类

       2.发生异常时按顺序逐个匹配

       3.只执行第一个与异常类型匹配的catch语句
     十一.Java异常分类

       1.运行时异常:在代码编译的时候不会进行检测,在代码运行时的过程中产生异常,

         RuntimeException及其子类都属于运行时异常,

         还有ArithmeticException、NullPointeException、NumberFormatException

       2.检查异常/检测异常:在代码编译的时候显示必须处理,才能通过编译器的编译,

         如:SQLException、ClassNoFoundException
     十二.throw、throws

       1.throws声明某个方法可能抛出的各种异常

       2.throws可以让检查异常通过编译器的编译,但没有真正解决异常

       3.throw手动抛出异常,并可以定义异常的信息

       4.throws可以声明多个异常,多个异常之间用逗号隔开

     十三.自定义异常

       1.写一个异常类,继承Exception

        2.手动实现Exception的构造方法

  • 相关阅读:
    #include <boost/shared_array.hpp>
    #include <boost/shared_ptr.hpp>
    #include <boost/scoped_array.hpp>
    df命令
    telnet命令
    sort 命令
    苏宁大数据面试题
    hive严格模式
    k-means伪代码
    vim编辑器
  • 原文地址:https://www.cnblogs.com/pohuaiwang/p/7049646.html
Copyright © 2011-2022 走看看