Java异常使用的一点心得

写这篇博客主要是为了对我的实验四做一个总结,谈一下Java异常类的使用。

  1. Java异常的分类
    当异常发生的时候,我们可以选择忽略、处理和退出;有些异常是因为程序员的原因,有些这是因为程序运行的物理环境出错导致。Java正是根据这些情况,对所有的异常进行了比较好的分类。
    在这里插入图片描述
    Java对所有的异常都归类为throwable父类,并且实现了所有的方法,后面的所有的异常类都相当于一个标识,仅仅需要实现构造器即可。Java对所有的异常有三种分类——Error、RuntimeException、其他Exception。Error就是指由于物理环境出现问题导致的错误,RuntimeException是指由于程序本身存在的问题导致的,其他Exception是指外界问题而不是指程序,但是这个问题是可以在程序内部解决的,比如说文件读取失败了,可以让用户重新输入问题文件名。
    Java对这些异常还有一种分类——checked(其他Exception)、unchecked(Error、RuntimeException),checked异常就是如果方法中如果抛出了这个异常,就必须要处理,或者选择上传到调用它的方法来处理,在整个异常链必须要有一个环节去处理,unchecked是我们不需要考虑的,让Java虚拟机来处理就好了。
    虽然Java对所有的异常做了很好的分类,但是当程序员自己定义异常类的时候需要自己判断这个异常属于哪类。

  2. 如何使用异常
    在我们构造软件的时候应该怎么使用异常呢,这里给出了我的一些想法。
    2.1如果你要设计的是一个API,也就是说你的用户也是程序员,你的里面的方法的异常可以这样来设定。
    2.1.1如果你调用的方法里面抛出了异常,你要尽可能去处理,除非应该由异常链上端去处理;
    2.1.2我们需要先对判断前置条件,如果说前置条件不满足的话,那说明是哪个编写编写代码的人不符合规范,此时应该抛出RuntimeException来告诉他代码出现问题了。此时,代码在运行时依然有可能出现问题,比如文件读取失败等,这些异常不是他的代码的问题,但是我们又处理不了,所以应该抛出去给上层。
    2.1.3我们还需要判断后置条件,这个是在开发阶段才应该进行的,当发布出去后我们应该保证没有问题,我们可以用Assertion机制来处理,你可以把对后置条件的判断整理为一个表达式,assert会根据所跟表达式的trueOrfalse。
    2.2如果你要设计的是一个软件,也就是说你的用户是普通人,他们只需要使用你的软件。所以当用户没有按照要求输入了数据后,你不能像对待程序员那样抛出RuntimeException而是检查后告诉用户重新输入。
    对此我做了一张图来说明一下:
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

看风听雨的人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值