zoukankan      html  css  js  c++  java
  • 异常

    DAY18

    JVM默认异常处理流程

    a.当我们代码在执行到发生错误的地方

    b.一旦发生错误,jvm就会终止我们自己程序的运行,转而执行jvm自己的错误处理流程

    c.在发生错误的地方,收集错误信息,产生一个描述错误的对象(异常对象)

    d.访问收集到的错误信息,将错误信息,输出到控制台窗口中

    运行时异常 和 编译时异常

    a.所有的RuntimeException类及其子类被称为运行时异常

    b.其他的异常就是编译时异常

    编译时异常和运行时异常语法的区别:

    运行时异常 

    无需显示处理,也可以和编译时异常一样处理

    编译时异常

    Java程序必须显示处理,否则编译器会报错,无法通过编译

    throws关键字

    • 在方法定义时使用
    • 声明该方法可能抛出的异常
    • 对于编译时异常,只有添加了throws关键字,声明方法可能抛出编译时异常,编译时异常才可以在发生的时候被抛出方法体之外(向上报告)
    • 对于用throws关键字声明抛出编译时异常的方法,可以在语法层面强制方法调用者处理该异常

    基本语法: 修饰符  返回值(形参列表) throws 异常列表{}

    注意事项:

    在方法声明中,增加了throws关键字     throws  异常类型1 ,异常类型2 ,异常类型3

    方法覆盖时的子类异常列表必须与父类兼容:

    1. 当子类方法声明的异常类型和父类声明的异常类型,完全相同的时候,可以发生方法覆盖
    2. 子类中声明的异常类型,都是父类中声明异常列表中的异常的子类类型(只针对编译时异常)
    3. 如果说父类没有异常列表,对于编译时异常而言,子类也不能有异常列表(子类也没有才能发生方法覆盖)
    4. 如果说父类有异常列表,子类没有异常列表,不管是编译时异常,还是运行时异常,都可以发生方法覆盖
  • 相关阅读:
    浅谈 倍增/ST表
    Meetings S 题解
    排序模板
    Huffman 树
    2020.7.31 模拟赛 题解
    浅谈 最短路
    【lcez校内第三次考T1】【题解】folder
    【题解】 P2613 【模板】有理数取余
    【题解】P5535 【XR-3】小道消息
    【笔记】积性函数 与 欧拉函数
  • 原文地址:https://www.cnblogs.com/wbh1996/p/12969910.html
Copyright © 2011-2022 走看看