news 2026/6/23 19:02:50

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/23 19:37:02

如何利用Cangaroo开源工具高效解决CAN总线开发难题

如何利用Cangaroo开源工具高效解决CAN总线开发难题 【免费下载链接】cangaroo 项目地址: https://gitcode.com/gh_mirrors/ca/cangaroo 在汽车电子和工业控制领域,CAN总线开发常常面临数据解析复杂、多接口管理困难等挑战。Cangaroo作为一款专业的开源CAN总…

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

百度网盘秒传脚本完全指南:快速上手极速生成功能

百度网盘秒传脚本是一款高效的网盘文件管理工具,通过模拟官方秒传机制实现文件的快速分享和转存。这款免费工具的核心优势在于永久保证分享有效性,且链接不包含任何账号隐私信息。本文将为您提供完整的秒传脚本使用教程。 【免费下载链接】rapid-upload-…

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

芯片价格战:成本才是王道

芯片行业价格战打得昏天黑地,各家厂商恨不得把价格压到地板价以下。这场战争里,能笑到最后的只有一种人——成本控制得好的。就是这么个逻辑:市场价格是统一的,你卖100块,别人也卖100块。但你的芯片成本是60块,人家成本是40块,这中间20块的差距就是生死线。这20块的差距很大程度…

作者头像 李华
网站建设 2026/6/23 19:28:41

layerdivider:AI图像分层革命,让设计效率飙升10倍

layerdivider:AI图像分层革命,让设计效率飙升10倍 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 还在为复杂图像的手动分层而头疼…

作者头像 李华
网站建设 2026/6/22 16:54:02

收到工资1002415.13元,爱你华为。

我的创业故事:《87年出生,我开了家一人公司,年营收百万》大家好,我是微笑哥。刚在二哥那边又刷到了一个帖子,是一个华为员工在匿名的社区,晒了自己的收入 100 多万。他说感谢华为,可以让他从山沟…

作者头像 李华
网站建设 2026/6/23 19:36:12

Windows 11精简终极教程:三步打造高性能轻量系统

Windows 11精简终极教程:三步打造高性能轻量系统 【免费下载链接】tiny11builder Scripts to build a trimmed-down Windows 11 image. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder 你的Windows 11是否因为系统臃肿而运行缓慢&#xff…

作者头像 李华