news 2026/4/18 2:47:38

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/4/18 8:32:11

三菱FX5U与台达DT330温控器通讯及控制实现

三菱FX5U与台达DT330温控器通讯程序输出控制本体远程双设定(SL5U-12) 功能:通过三菱FX5U本体485口,结合触摸屏网口,实现对台达DT330温控器设定温度,读取温度,控制输出启停,以及在温控器本体与远程触摸屏都能…

作者头像 李华
网站建设 2026/4/18 12:10:25

VokoscreenNG:Linux平台上的专业屏幕录制解决方案

VokoscreenNG:Linux平台上的专业屏幕录制解决方案 【免费下载链接】vokoscreenNG vokoscreenNG is a powerful screencast creator in many languages to record the screen, an area or a window (Linux only). Recording of audio from multiple sources is suppo…

作者头像 李华
网站建设 2026/4/18 12:08:36

与 Teigha的相爱相杀

与 Teigha的相爱相杀Teigha再脱离CAD处理DWG,效率还是比较高的, 最近研究通过Teigha识别一些图形过程中,发现一些让我血压飙升的问题。1.API未实现的问题在处理共线线段之间的位置关系时,判断线段之间是否有重叠关系,看到Overlap&…

作者头像 李华
网站建设 2026/4/18 7:15:54

AI之Course之Context Engineering:会话与记忆 —— 学习构建能记住历史交互、保持上下文的AI智能体。掌握短期与长期记忆的实现方式,以创建能够处理复杂多轮任务的鲁棒智能体—构建

AI之Course之Context Engineering:会话与记忆 —— 学习构建能记住历史交互、保持上下文的AI智能体。掌握短期与长期记忆的实现方式,以创建能够处理复杂多轮任务的鲁棒智能体—构建有状态 LLM Agent 的会话(Sessions)与记忆&#…

作者头像 李华
网站建设 2026/4/16 16:15:41

36、高级信号管理:深入解析与实践

高级信号管理:深入解析与实践 1. 信号集函数基础 在信号处理中,有几个基础的信号集函数非常重要。 sigaddset() 和 sigdelset() 用于对信号集进行操作。 sigaddset() 可以将指定的信号 signo 添加到给定的信号集 set 中,而 sigdelset() 则是将 signo 从信号集…

作者头像 李华
网站建设 2026/4/14 19:28:43

SGP4卫星轨道计算终极指南:从入门到实战的完整解决方案

SGP4卫星轨道计算终极指南:从入门到实战的完整解决方案 【免费下载链接】sgp4 Simplified perturbations models 项目地址: https://gitcode.com/gh_mirrors/sg/sgp4 SGP4(Simplified General Perturbations model 4)作为卫星轨道预测…

作者头像 李华