讲师中心 微信公众号
AI工具推荐 视频效率加速

自定义异常:应选择继承Exception还是RuntimeException

雨丽酱_3492

雨丽酱_3492

发布时间:2026-06-23 06:09:40

|

301人浏览过

|

来源于php中文网

原创

应继承Exception当调用方必须显式处理业务异常(如支付超限、库存不足),编译器强制捕获;继承RuntimeException适用于程序缺陷类错误(如空参、状态不一致),便于快速暴露问题;需提供标准构造函数并规范命名。

自定义异常:应选择继承exception还是runtimeexception

选继承 Exception 还是 RuntimeException,关键看调用方有没有能力、责任或必要去主动应对这个错误。

该继承Exception的情况

适用于调用方必须显式处理的业务异常,比如重试、降级、提示用户或走补偿流程。编译器会强制要求 try-catch 或 throws,避免被忽略。

  • 支付金额超限、库存不足、订单已发货等明确可预判、有业务含义的失败
  • 外部依赖返回明确错误码(如 HTTP 401、SQL 语法错误)且上层需定制响应
  • 第三方服务不稳定,你希望调用方“不得不”考虑熔断或备用方案

该继承RuntimeException的情况

适用于程序逻辑缺陷、参数校验失败、配置缺失等本不该发生、或发生后无法合理恢复的问题。编译器不干预,便于快速暴露问题。

  • 传入 null 参数且契约不允许(如 OrderService.create(null))
  • 状态不一致(如“订单已完成却尝试取消”)
  • 配置项为空、JSON 解析失败等开发阶段应拦截的错误

命名和构造函数要规范

不管选哪个父类,都必须提供标准构造函数:

  • MyException()
  • MyException(String message)
  • MyException(String message, Throwable cause)

不要覆盖 getMessage() 或 getCause();命名体现业务语义(如 InsufficientBalanceException),而非技术细节(如 CheckFailedException)。

别踩这些坑

  • 直接继承 Throwable 或 Object:编译失败,JVM 不识别
  • 把本该由调用方响应的错误设为 RuntimeException:重试、降级逻辑容易被跳过
  • 给 RuntimeException 子类加 throws 声明:无实际作用,反而干扰阅读和静态检查
  • 用 new Exception("xxx") 代替自定义类:丢失业务语义,无法精准捕获

热门AI工具

更多
切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

相关专题

更多
剧云AI短剧创作教程合集
剧云AI短剧创作教程合集

本专题聚焦剧云AI短剧创作,讲解从短剧灵感、梗概、全局大纲到分集、分场和正文的完整流程及节奏设计方法。

0

2026.10.14

剧云AI剧本创作零基础入门
剧云AI剧本创作零基础入门

本专题系统讲解剧云AI剧本创作流程,涵盖灵感、梗概、大纲、分场与正文生成,帮助新手快速完成首个中文剧本项目。

0

2026.10.14

VibeKnow文档转视频操作指南
VibeKnow文档转视频操作指南

本专题讲解VibeKnow上传Word、TXT、Markdown等材料生成视频的方法,覆盖内容解析、脚本组织、画面生成与成片检查。

0

2026.10.14

VibeKnow知识视频制作与导出详解
VibeKnow知识视频制作与导出详解

本专题整理VibeKnow从注册、素材上传、AI生成到预览导出的完整操作,帮助新手快速制作第一条知识讲解视频。

0

2026.10.14

二狗PPT大纲编辑实操指南
二狗PPT大纲编辑实操指南

本专题聚焦二狗PPT结构化大纲的生成和修改,讲解标题、正文、目录、页数与页面顺序的调整方法,提升汇报逻辑和内容完整性。

0

2026.10.14

二狗PPT文档转PPT全教程
二狗PPT文档转PPT全教程

本专题讲解二狗PPT解析Word、PDF、Excel和PPT资料的方法,涵盖文件上传、内容提取、大纲整理、异常处理与转换后校对。

0

2026.10.14

讯飞绘文全功能使用教程
讯飞绘文全功能使用教程

本专题系统整理讯飞绘文官网入口、注册登录、工作台及内容创作流程,帮助用户熟悉常用功能,快速完成首篇图文内容。

0

2026.10.14

讯飞绘文AI写作与文案生成合集
讯飞绘文AI写作与文案生成合集

本专题聚焦讯飞绘文AI写作、提纲生成、文章改写和文案润色,覆盖从主题输入到成稿优化的关键操作与实用技巧。

0

2026.10.14

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

100

2026.10.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Go语言教程-全程干货无废话
Go语言教程-全程干货无废话

共100课时 | 17.8万人学习

第三期培训_PHP开发
第三期培训_PHP开发

共116课时 | 32.6万人学习

Laravel框架内核源码分析
Laravel框架内核源码分析

共26课时 | 4.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn