何时使用Checked Exception?

本文不科普checked exception和unchecked exception,如果不知道这两者区别的童鞋可以参考其他文章。

进入正题。

个人认为,当开发人员知道如何处理异常时应使用checked exception。但又一个问题来了:什么叫“知道”?什么叫“不知道”?

我认为
1. 使用checked exception的情况:异常在运行时出现是正常的,是我们期待的,出现后不会影响程序继续正常工作的,开发人员应该知道此类异常出现后程序的运行方向的。
    最典型的例子就是业务异常。比如用户输入的数据之间有一定的关系,不满足这种关系时需要提示用户,虽然可以采用在biz层直接返回字符串信息的方式,但很多时候该方法需要返回的数据不是一个字符串,这个时候运用异常就很方便。下面是示例代码:

public class DemoService {
    public Goods findGoods(Customer customer, Long goodsId) throws BizException {
        if (validateCustomerAndGoods()) {// 此处有一个查找货物并验证客户和货物关系的业务逻辑
            throw new CustomerAndGoodsMismatchException("此客户无权查看此货物");
        }
        return goods;
    }
}

@RestController
public class DemoController {
    @GetMapping("/findGoods")
    public Result findGoods(Customer customer, Long goodsId) {
        Result result = new Result();
        try {
            Goods goods = demoService.findGoods(customer, goodsId);
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值