news 2026/6/26 1:13:51

throw new Exception 如何指定返回code

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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状态码。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/25 13:50:10

智能agent研究误区:从技术错觉到实际应用的挑战

先给结论:有搞头,但前提是你别把 agent 当成“调 API 的集合体”。先给结论:有搞头,但前提是你别把 agent 当成“调 API 的集合体”。先给结论:有搞头,但前提是你别把 agent 当成“调 API 的集合体”。重要…

作者头像 李华
网站建设 2026/6/25 21:00:57

并查集示例

并查集 “合并(Union) 查找(Find)”的集合,也叫 Disjoint Set Union(DSU)。 它只做两件极快的事: Find(x) – 问“x 在哪个集合?”→ 返回根节点Union(x, y) – 把 x 所…

作者头像 李华
网站建设 2026/6/25 17:20:08

移动端PDF预览技术深度解析:从问题根源到最佳实践

移动端PDF预览技术深度解析:从问题根源到最佳实践 【免费下载链接】pdfh5 项目地址: https://gitcode.com/gh_mirrors/pdf/pdfh5 在移动互联网高速发展的今天,PDF文档的移动端预览已成为刚需,但传统方案在性能、交互和兼容性方面存在…

作者头像 李华
网站建设 2026/6/23 14:32:54

AI之Course之Agent Quality:智能体质量保障—通过掌握评估与改进智能体的关键方法,学习构建健壮可靠的AI智能体。内容包括可观测性、日志记录与追踪技术,以及优化智能体性能的核心指标与评

AI之Course之Agent Quality:智能体质量保障—通过掌握评估与改进智能体的关键方法,学习构建健壮可靠的AI智能体。内容包括可观测性、日志记录与追踪技术,以及优化智能体性能的核心指标与评估策略—构建可信AI智能体:质量评估、可观…

作者头像 李华
网站建设 2026/6/25 22:49:38

游戏音频解码利器:vgmstream全方位应用指南

引言:开启游戏音频宝库的钥匙 【免费下载链接】vgmstream vgmstream - A library for playback of various streamed audio formats used in video games. 项目地址: https://gitcode.com/gh_mirrors/vg/vgmstream 你是否曾经遇到过这样的情况:在…

作者头像 李华
网站建设 2026/6/25 18:56:40

如何接口封装 注意事项

面试口述 “接口封装 + 注意事项” 的核心:以 “统一化、自动化、稳定性” 为目标,先讲封装思路(从痛点到落地),再讲核心注意事项,结合实际项目案例(比如 Uniapp/Vue/ 小程序),用 “步骤 + 细节 + 踩坑” 逻辑说清,体现工程化思维。以下是 3-5 分钟口述模板(适配中级…

作者头像 李华