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. 如果说父类有异常列表,子类没有异常列表,不管是编译时异常,还是运行时异常,都可以发生方法覆盖
  • 相关阅读:
    进度条
    html5 表单新增事件
    html5 表单的新增type属性
    html5 表单的新增元素
    html5 语义化标签
    jq 手风琴案例
    codeforces 702D D. Road to Post Office(数学)
    codeforces 702C C. Cellular Network(水题)
    codeforces 702B B. Powers of Two(水题)
    codeforces 702A A. Maximum Increase(水题)
  • 原文地址:https://www.cnblogs.com/wbh1996/p/12969910.html
Copyright © 2011-2022 走看看