当前位置: 首页 > news >正文

throw new Exception 如何指定返回code

解决方案:自定义异常类(推荐)

Java标准库中的ExceptionRuntimeException等基础异常类都没有提供错误码(code)的属性,因此最常用、最灵活的方式是创建自定义异常类,在其中添加code属性并提供对应的构造方法。

根据业务场景,你可以选择继承受检异常Exception)或非受检异常RuntimeException,更推荐用于业务异常,无需强制捕获)。

1. 自定义业务异常类(带错误码)
/** * 自定义业务异常类,支持错误码和错误消息 */publicclassBusinessExceptionextendsRuntimeException{// 错误码privateintcode;// 构造方法1:只传错误消息(默认错误码,比如500)publicBusinessException(Stringmessage){super(message);this.code=500;// 默认系统错误码}// 构造方法2:传错误码和错误消息(核心)publicBusinessException(intcode,Stringmessage){super(message);this.code=code;}// 构造方法3:传错误码、消息和异常原因(用于异常链)publicBusinessException(intcode,Stringmessage,Throwablecause){super(message,cause);this.code=code;}// 获取错误码的getter方法publicintgetCode(){returncode;}}
2. 使用自定义异常(指定code)
// 抛出异常:指定错误码(比如401:未授权)和消息thrownewBusinessException(401,"未携带 Token,请登录");
3. 捕获异常并获取code
try{// 执行可能抛出异常的逻辑thrownewBusinessException(401,"未携带 Token,请登录");}catch(BusinessExceptione){// 获取错误码和消息intcode=e.getCode();Stringmessage=e.getMessage();System.out.println("错误码:"+code+",错误消息:"+message);}

补充:框架自带的异常(适用于特定场景)

如果你使用了Spring、Spring Boot等框架,部分框架提供了支持状态码的异常,但这些主要是HTTP状态码,而非业务错误码:

  • ResponseStatusException(Spring提供):用于指定HTTP状态码和消息,比如new ResponseStatusException(HttpStatus.UNAUTHORIZED, "未携带 Token,请登录")
  • HttpClientErrorException:用于HTTP客户端的异常,携带HTTP状态码。
http://www.cnnetsun.cn/news/74315.html

相关文章:

  • 如何利用Cangaroo开源工具高效解决CAN总线开发难题
  • 百度网盘秒传脚本完全指南:快速上手极速生成功能
  • 芯片价格战:成本才是王道
  • layerdivider:AI图像分层革命,让设计效率飙升10倍
  • 收到工资1002415.13元,爱你华为。
  • Windows 11精简终极教程:三步打造高性能轻量系统
  • 全面解锁Honey Select 2游戏潜能的200+插件整合方案
  • ComfyUI与ONNX Runtime集成:跨框架模型支持
  • WebSite-Downloader 网站下载器终极指南:5分钟快速上手完整教程
  • 什么是公有云
  • PHP 8.6错误码实战手册:从E_ERROR到自定义Throwable的全面掌控
  • 解决Tiled地图编辑器中图层管理混乱的终极方案
  • 20、网络服务器安全与配置指南
  • 21、网络服务基础:FTP、Sendmail与DNS详解
  • B站视频下载终极指南:BiliDownloader完整使用教程
  • 悄悄收藏!这套免费资源包,让你在思维、职场、育儿赛道上同时超车
  • 揭秘R-Python变量传递难题:5种高效解决方案让你少走3年弯路
  • OpenCore Legacy Patcher:让旧款Mac重获新生的终极指南
  • FP8量化技术详解:为何Stable Diffusion 3.5更轻更快?
  • 使用Wan2.2-T2V-5B生成广告短视频模板的完整工作流
  • 揭秘医疗数据导出难题:PHP如何实现安全合规的CSV与JSON转换
  • 【GraphQL的PHP错误处理】:掌握5种高效异常捕获策略,提升API健壮性
  • 独家披露:顶级金融机构都在用的R语言Copula风险建模内部笔记(限时公开)
  • ImageToSTL:零基础将图片秒变3D打印模型的神器
  • 口语教育的黄金时代:AI技术引领教育创新与创业机遇
  • 基于多模态大模型的工业质检系统:从AOI到“零样本“缺陷识别的产线实践
  • 微信视频号直播弹幕抓取终极指南:实时获取互动数据的完整方案
  • Source Han Serif 思源宋体:开源专业字体全方位应用指南
  • 医疗数据交换新标准来了,PHP如何快速支持FHIR格式导出?
  • 移动端PDF预览困境:如何用pdfh5.js打造丝滑体验