异常知识总结

一、Thrownable

是java中的顶级异常类,继承至Object,实现了序列化接口,有两个重要的子类:ExceptionError,二者都是java中处理异常的子类,各自都包含大量的子类。
1、Error是表示系统级别的错误,是java运行环境内部或者硬件错误,不能指望程序员来处理这类问题,除了退出程序之外,没有其他选择,这是java虚拟机抛出的。
2、exception表示程序还能够克服和恢复的问题,程序需要捕捉,需要处理的异常,是由程序设计的不完善而出现的问题,程序必修处理的问题。
在这里插入图片描述

二、Exception的分类

Exception的主要分为两大类。即受检查异常(checked exception)非受检查异常(unchecked exception)。

  • 非受检查异常,这种一般来说是继承自RuntimeException。在编写代码的时候,不需要显示的捕获,在运行时期,如果发生异常会中断程序的执行,这种异常一般理解是由于代码原因导致的,问题是可以避免的,所以需要我们显示的处理问题。
  • 检查异常 这是一种一定要对其进行处理的异常,否则编译将无法通过。常见的FileNotFounException。处理方式有两种:
    • 1 当前方法知道如何处理该异常,则用 try…catch 块来处理该异常
    • 2 当前方法不知道如何处理,则在定义该方法是声明Throws抛出该异常。(由后面调用该方法的方法来处理)
三、throw 和 throws 的区别
throw :

1) Throw 语句用在方法体内,表示抛出异常,由方法体内的语句处理。
2) throw 是具体向外抛出异常的动作,所以它抛出的是一个异常实例,执行 throw 一定是抛出了某种异常

throws

1) throws 语句是用在方法声明后面,表示如果抛出异常,由该方法的调用者来进行异常的处理。
2) throws 主要是声明这个方法会抛出某种类型的异常,让它的使用者要知道需要捕获的异常的类型。
3) throws 表示出现异常的一种可能性,并不一定会发生这种异常

四、常见RuntimeException

1) java.lang.NullPointerException 空指针异常;出现原因:调用了未经初始化的对象或者是不存在的对象
2) java.lang.ClassNotFoundException 指定的类找不到;出现原因:类的名称和路径加载错误;通常都是程序
试图通过字符串来加载某个类时可能引发异常。
3) java.lang.NumberFormatException 字符串转换为数字异常;出现原因:字符型数据中包含非数字符串
4) java.lang.IndexOutOfBoundsException 数组角标越界异常,常见于操作数组对象时发生
5) java.lang.IllegalArgumentException 方法传递参数错误
6) java.lang.ClassCastException 数据类型转换异常。
7) java.lang.NoClassDefFoundException 未找到类定义错误
8) SQLException SQL 异常,常见于操作数据库时的 SQL 语句错误。
9) java.lang.InstantiationException 实例化异常
10) java.lang.NoSuchMethodException 方法不存在异常

五、异常处理的几个关键字

throws:用来声明一个方法可能抛出的各种异常。
throw:用来明确得抛出一个具体的异常。
try:用来指定一块所有预防异常的程序。
catch:跟在try指定你想要捕获异常的类型。
finally:确保一段代码不管发生什么异常情况都能够被执行

六、什么是异常链

异常链是java中非常流行的处理异常的概念,是指在进行一个异常处理的时候抛出了一个另外的异常,所有就产生了一个链条。同时我们的做法是 将受检查异常封装成一个非受检查异常,然后抛出。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值