• 异常


    1、异常

    什么是异常?Java代码在运行时期发生的问题就是异常。

    比如:空指针异常,数组越界异常,类型转换异常

    异常的继承体系

    在Java中使用Exception类来描述异常。

    Exception 类及其子类是 Throwable 的一种形式

    Exception是异常类

    Throwable有两个子类,一个Error(是错误//只能修改代码来处理),

    一个Exception(是异常//)

     

    抛出异常throw

    它用来抛出一个指定的异常对象

    1,创建一个异常对象。比如:空指针异常,数组越界异常,类型转换异常

    使用格式:

    throw new 异常类名(参数);

    声明异常throws

    声明异常格式:

    修饰符 返回值类型 方法名(参数) throws 异常类名1,异常类名2… {   }

    需要配合使用

    案列:

    异常分为可处理和不可处理,可处理的处理,处理不了的终止

    捕获异常try…catch…finally

    捕获异常格式:

    try {

         //需要被检测的语句。

    }

    catch(异常类 变量) { //参数。

         //异常的处理语句。

    }

    finally {

         //一定会被执行的语句。//出不出错都要执行

    }

     

    效果:这是自己处理的

     

    如果有多个catch一定要注意顺序,总父类在最后一个catch

    两种处理方式:自己处理的不会结束接下来的代码运行,虚拟机处理的第一步就是停止代码运行,然后在控制台报错

    try…catch…finally异常处理的组合方式

    try catch finally组合:检测异常,并传递给catch处理,并在finally中进行资源释放。

    try catch组合 : 对代码进行异常检测,并对检测的异常传递给catch处理。对异常进行捕获处理。

    一个try 多个catch组合 : 对代码进行异常检测,并对检测的异常传递给catch处理。对每种异常信息进行不同的捕获处理。

    try finally 组合: 对代码进行异常检测,检测到异常后因为没有catch,所以一样会被默认jvm抛出。异常是没有捕获处理的。但是功能所开启资源需要进行关闭,所有finally。只为关闭资源。

     

    运行时期异常

    l  RuntimeException和他的所有子类异常,都属于运行时期异常。NullPointerException,ArrayIndexOutOfBoundsException等都属于运行时期异常.

    l  运行时期异常的特点:

    n  方法中抛出运行时期异常,方法定义中无需throws声明,调用者也无需处理此异常

    n  运行时期异常一旦发生,需要程序人员修改源代码.

     

     

    异常在方法重写中细节

    子类覆盖父类方法时,如果父类的方法声明异常,子类只能声明父类异常或者该异常的子类,或不写。

    父类没有抛异常子类不能抛

     

    当在子类重写时,父类没有抛,子类调用了抛异常的方式,只能掉用try catch finally方法来解决子类的异常

    异常中常用方法

    l  getMessage方法:返回该异常的详细信息字符串,即异常提示信息

     

    l  toString方法:返回该异常的名称与详细信息字符串

     

    l  printStackTrace:在控制台输出该异常的名称与详细信息字符串、异常出现的代码位置

     

    2、自定义异常

    定义一个类

     

    引用类

     

    异常捕获

    异常产生原因

  • 相关阅读:
    UVA
    UVA
    UVA
    UVA
    POJ
    Yahoo Programming Contest 2019 自闭记
    Codeforces Global Round 1 自闭记
    CodeCraft-19 and Codeforces Round #537 Div. 2
    BZOJ4912 SDOI2017天才黑客(最短路+虚树)
    BZOJ2877 NOI2012魔幻棋盘(二维线段树)
  • 原文地址:https://www.cnblogs.com/pandam/p/11010721.html
Copyright © 2020-2023  润新知