Java面向对象重温【异常】

Java重温之异常

概念:程序在运行过程中或者是编译时出现的不正常的现象。

异常的分类:

  • Throwable(异常的根类)

    • Error:程序不能处理的jvm级别的异常。

    • Exception:程序能够捕获或者处理的异常。

      • RuntimeException:运行时异常—》程序在运行过程中出现的异常,不是必须进行try catch的异常

      • CheckedException(编译时异常):出现在编译时的错误,必须进行处理的异常,要么try catch住,要么往外抛,谁调用,谁处理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U7mAAmQS-1614527669989)(D:\4A\点击进入学习\Java\Java面向对象\image-20210228190003893.png)]


常见的运行时异常介绍:

异常类 含义 导致原因

ArithmeticException 算数异常 除数不能为0异常

InputMistmatchException 输入不匹配异常

NullPointException 空指针异常 一个引用类型的实例为null,调用方法. 如String str =null ; boolean isTrue = str.equals("")

ArrayOutOfBoundsException 数据下表越界异常 下标越界异常

NumberFormatException 数据格式化异常 将一个非数字的字符串转换为数据类型 如: new Integer(“abc”)

ClassCastException 强制类型转换异常 将一个父类的引用强制转换为没有继承关系的类型时 如:Pet pet = new PetDog(); PetCat cat = (PetCat) pet


异常的特点:

  • 若某行代码在执行过程中抛出了异常,那么,后续的语句都不会执行
  • 若异常已经被处理过,那么,后续的语句会继续执行

常见的非运行时异常(Checked异常,编译时异常)介绍:

异常类 含义 导致原因

ClassNotFoundException 找不到类的异常 通过Class.ForName(“类的全限定名对于的字符串”) 如:Class.forName(“a.b.c.Dog”)

ParseException 日期解析的异常 将一个与指定格式不匹配的日期字符串解析为Date类型对象时


如何对异常所属的类型进行赠别?

(运行时异常)RuntiemException类型异常:

​ ①编译能通过。

​ ②查看该异常类型的层次结构图(继承关系图),若该异常是直接或者间接继承RuntiemException

(编译时异常)checked异常:①若不处理,编译报错

​ ②查看该异常类型的层次结构图(继承关系图),若该异常是直接或者间接继承RuntiemException


异常处理常见手段:try catch finally throws

public class test1 {
    public static void main(String[] args) {
        System.out.println(Method());
    }
    public static int Method()
    {
        try {
            System.out.println("执行了try操作");
            int a = 5/0;
            return 1;
        }
        catch(Exception e)
        {
            e.printStackTrace();
            return 2;
        }
        finally {
            System.out.println("执行了finally");
            return 3;
        }
    }
}
//顺序是如果没异常 try-->finally 但是都有return的情况下最终返回finally的返回值
//如果顺序是有异常的 catch-->finally 
//最终打印是  执行了try操作,执行了finally操作,3

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值