Java异常体系

异常
在进行编写代码时,有的异常是不能避免的,如读取的文件不存在,或输入的数据格式不匹配都会导致异常的发生,异常机代表一种错误,又代表一种信息,遇到不是代码问题产生的不正常的现象,程序需要将这种异常的情况包装起来,告知用户,由用户来决定如何处理
异常的结构
在这里插入图片描述
所有的异常都是继承Throwable类而来的
Error
程序无法处理的错误,比如当JVM执行操作时没有需要的内存时,会出现OutofMemoryError,这种情况发生时,虚拟机会选择线程终止
常见的Error

  • OutofMemoryError
  • StackOverflowError

OutofMemoryError:当循环无出口,不断创建对象时,会出现此错误

  • 内存溢出:对象本应该活着,但因为堆内存不够了,不能存活
  • 内存泄漏:对象本应该回收,但因为泄露了,无法回收
public class TestOOMEoor {
    static class OOMObject{
    }
    public static void main(String[] args) {
        List<OOMObject> list = new ArrayList<>();
        //此时应该是OOM的内存泄漏:无用对象无法被回收
        while (true){
            list.add(new OOMObject());
        }
    }
}

在这里插入图片描述
注意:在运行此段代码前可以通过参数制定内存大小

StackOverflowError:请求的栈深度超出JVM允许的栈深度

public class TestSOFError {
    private int stackDeep = 0;

    public void setDeep() {
        stackDeep++;
        setDeep();
    }

    public static void main(String[] args) {
        TestSOFError testSOFError = new TestSOFError();
        try{
            testSOFError.setDeep();
        }catch (Throwable t){
            t.printStackTrace();
            System.out.println("Call deep"+testSOFError.stackDeep);
        }
    }
}

在这里插入图片描述

Exception

  • RuntimeException:运行时异常
  • IOException:I/O错误导致的异常

常见的运行时异常

  • ArrayIndexOutOfBoundsException:数组下标越界异常(左右都可能越界)
  • NullPointerException:空指针异常
  • ArithmeticException:算术异常(例如除0异常)
  • NumberFormatException:数字格式转化异常(非数字类型的字符串转化为数字类型)
  • IllegalArgumentException:参数非法异常
  • ConcurrentModifyException:并发修改异常(fail-fast)

常见的IO异常

  • FileNotFoundexception

受查异常和非受查异常:

  • 受查异常(编译时期异常):受查异常的发生是可以预测的,可以在编写代码时期进行处理,如I/O异常,除了RuntimeException及其子类,都是受查异常
  • 非受查异常:运行时异常,RuntimeException及其子类,这种异常是无法预先进行处理的
基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip 个人大四的毕业设计、课程设计、作业、经导师指导并认可通过的高分设计项目,评审平均分达96.5分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 [资源说明] 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设或者课设、作业,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96.5分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),供学习参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值