• 第六章:异常机制


    第六章:异常机制
    异常的定义

    异常:在程序运行过程中出现的意外事件,导致程序中断执行。


    异常处理
    try...catch

    语法:
    try{
    //可能出现异常的代码
    }catch(异常类型 异常对象名){
    //处理异常的代码;
    }
    执行过程:
    当try中的代码异常发生时抛出一个异常对象,该异常对象与catch中异常类型进行匹配,匹配成功进入catch块,否则不执行catch中代码(相当于异常未被处理)。
    程序只有当异常处理成功后才能继续执行。


    try...catch...catch

    语法:
    try{
    //可能出现异常的代码
    }catch(异常类型1 对象名){
    //处理代码1;
    }catch(异常类型2 对象名){
    //处理代码2
    }....
    执行过程:当try中代码出现异常时,抛出一个异常对象,将该异常对象与catch块中异常类型依次匹配,匹配成功执行其下catch块中代码。
    注意:异常类型的范围应该有小到大,先放子类异常类型,再父类异常类型。


    try...catch...finally

    语法:
    try{
    //可能出现异常的代码
    }catch(异常类型1 对象名){
    //处理代码1;
    }catch(异常类型2 对象名){
    //处理代码2
    }finally{
    //会被执行的代码
    }
    finally块中代码一定会执行,如果在try或catch块中存在retrun语句,先执行finally中的代码,然后执行return语句。
    finally中代码只有在退出程序(退出虚拟机)时才不会执行---->System.exit()


    try...finally

    语法:
    try{
    //可能出现异常的代码
    }finally{
    //一旦会执行的代码
    }

    finally块中代码经常用于资源的释放,比如数据连接的关闭,IO流的关闭等。


    throws和throw关键字

    如果在处理异常的过程中希望将异常抛出,就需要throws和throw

    throws和throw的区别
    1.位置不同:throws用于方法声明时,throw用于方法体中
    2.类型不同(内容不同):
    throws后跟的异常类型,throw后跟的异常对象
    3.作用不同
    throws在方法声明时告知调用者该方法存在的异常类型,throw在方法体内抛出某个具体的异常对象。


    异常类型

    Throwable是所有错误和异常的父类。
    --Error类:严重的错误
    --Exception类:异常

    异常的分类:
    运行时异常(RuntimeException):不强制捕获程序就可以通过编译
    常见的运行时异常
    NullPointerException
    ArrayIndexOutOfBounds
    NumberFormatException
    ClassCastException
    InputMisMatchException
    ...
    检查异常:强制捕获否则无法通过编译
    SQLException
    ClassNotFoundException
    IOException
    ...


    自定义异常

     当JDK提供的异常类型无法满足需要时,就需要自定义异常。

    自定义异常的步骤:
    1.自定义异常类:继承Exception或RuntimeException
    2.在自定异常类的构造方法中调用父类的构造,传入自定义异常信息
    3.创建自定义异常对象
    4.使用throw将异常对象抛出

  • 相关阅读:
    7-2 一元多项式的乘法与加法运算 (20 分)
    cvc-complex-type.2.4.a: Invalid content was found starting with element(servlet)
    MOOC 2.3 队列
    MOOC 2.2 堆栈
    MOOC 2.1 线性表及其实现
    MOOC 1.3 最大子列和
    计时程序
    MOOC 1.1 什么是数据结构
    poj3253
    二分法查找——对数
  • 原文地址:https://www.cnblogs.com/panwenshuai/p/7003775.html
Copyright © 2020-2023  润新知