BizIllegalException 和BadRequestException的适用场景

简介: 在软件开发过程中,异常处理是一个重要的方面,能够提高系统的稳定性和可靠性。BizIllegalException(业务非法异常)和BadRequestException(错误的请求异常)是两种常见的异常类型,它们在不同的场景下使用。本文将详细介绍这两种异常的适用场景。

1.BizIllegalException(业务非法异常)
BizIllegalException主要用于表示业务逻辑上的错误,即用户尝试执行一个在当前业务场景下不允许的操作。以下是一些适用场景:

1.1 非法操作:当用户尝试执行一个不合法的操作时,可以抛出BizIllegalException。例如,在电商系统中,当用户尝试购买一个已售罄的商品时,可以抛出BizIllegalException,提示用户该商品暂时无法购买。

1.2 业务规则校验失败:在业务操作过程中,可能需要进行一些规则校验,以确保操作符合业务规范。当规则校验失败时,可以抛出BizIllegalException。例如,在论坛系统中,当用户在发表评论时不满足最低字数要求,可以抛出BizIllegalException,提示用户评论字数过少。

1.3 权限不足:当用户尝试执行一个超出其权限范围的操作时,可以抛出BizIllegalException。例如,在文件管理系统中,当普通用户尝试删除管理员上传的文件时,可以抛出BizIllegalException,提示用户权限不足。

1.4 重复操作:当用户尝试执行一个已经完成的操作时,可以抛出BizIllegalException。例如,在支付系统中,当用户尝试重复支付同一笔订单时,可以抛出BizIllegalException,提示用户该订单已经支付完成。

总的来说,BizIllegalException主要用于表示业务逻辑上的错误,需要进行相应的处理或提示用户操作非法。

2.BadRequestException(错误的请求异常)
BadRequestException主要用于表示客户端发送的请求数据格式错误或参数错误。以下是一些适用场景:

2.1 请求参数错误:当客户端发送的请求参数缺失或格式错误时,可以抛出BadRequestException。例如,在用户注册接口中,如果缺少必填字段,可以抛出BadRequestException,提示客户端必填字段不能为空。

2.2 数据格式错误:当客户端发送的数据格式与接口要求的数据格式不匹配时,可以抛出BadRequestException。例如,在API接口中,如果接收到的数据类型与预期的数据类型不一致,可以抛出BadRequestException,提示客户端数据格式错误。

2.3 请求方法错误:当客户端使用了错误的请求方法时,可以抛出BadRequestException。例如,在RESTful API中,如果客户端使用了不支持的请求方法,可以抛出BadRequestException,提示客户端请求方法错误。

2.4 请求超时:当客户端发送的请求超过了指定的时间限制时,可以抛出BadRequestException。例如,在支付系统中,如果客户端的请求在规定时间内未能完成,可以抛出BadRequestException,提示客户端请求超时。

总的来说,BadRequestException主要用于表示客户端请求的错误,需要客户端进行修正并重新发送请求。

在实际开发中,根据具体的业务场景和异常类型,可以选择使用合适的异常类型进行抛出和处理。通过合理使用异常处理机制,能够更好地保护用户权益、维护系统稳定性,并提升用户体验和系统性能。

相关文章
最新jsonwebtoken-jjwt 0.12.3 基本使用
最新jsonwebtoken-jjwt 0.12.3 基本使用
3414 1
|
存储 SQL 缓存
Hadoop入门(一篇就够了)
Hadoop入门(一篇就够了)
31862 4
Hadoop入门(一篇就够了)
|
12月前
|
缓存 Java 测试技术
分享干货:idea常用快捷键分类总结(适合速查~~建议收藏♥)
本文以分类的形式总结了IDEA常用、好用快捷键,全是干货~
4105 1
分享干货:idea常用快捷键分类总结(适合速查~~建议收藏♥)
|
JSON 小程序 JavaScript
微信小程序页面事件,下拉刷新事件和上拉触底事件
这篇文章介绍了微信小程序中如何实现下拉刷新和上拉触底事件,包括开启下拉刷新、配置下拉刷新样式、监听下拉刷新事件,以及监听上拉触底事件和配置上拉触底的距离。
|
消息中间件 存储 Java
吃透 RocketMQ 消息中间件,看这篇就够了!
本文详细介绍 RocketMQ 的五大要点、核心特性及应用场景,涵盖高并发业务场景下的消息中间件关键知识点。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
吃透 RocketMQ 消息中间件,看这篇就够了!
|
自然语言处理 应用服务中间件 nginx
一文教会你 分词器elasticsearch-analysis-ik 的安装使用【自定义分词库】
这篇文章是关于如何在Elasticsearch中安装和使用ik分词器的详细教程,包括版本匹配、安装步骤、分词测试、自定义词库配置以及创建使用ik分词器的索引的方法。
一文教会你 分词器elasticsearch-analysis-ik 的安装使用【自定义分词库】
|
Java 编译器 Spring
面试突击78:@Autowired 和 @Resource 有什么区别?
面试突击78:@Autowired 和 @Resource 有什么区别?
16581 6
|
IDE 前端开发 Java
IDE报错 NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field ‘
IDE报错 NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field ‘
7196 2
|
存储 缓存 JSON
详解HTTP四种请求:POST、GET、DELETE、PUT
【4月更文挑战第3天】
72212 5
详解HTTP四种请求:POST、GET、DELETE、PUT