自定义异常javadoc需聚焦业务语义:首句说明触发场景与原因,如“当用户余额不足时抛出”;详述各触发条件;解释errorcode、isretryable等字段的业务用途;末尾提供含分支处理、日志、降级的真实代码示例。

自定义异常的 JavaDoc 要写得清晰,核心是让调用者一眼看懂:这个异常在什么场景下抛出、为什么抛、该怎么处理。重点不是描述“它是个异常”,而是说明“它想告诉你什么”。
明确标注异常语义和触发条件
在 @throws 标签之前,用简短的一句话说明该异常代表的业务含义,而不是技术类型。避免写“抛出 MyBusinessException”,而要写“当用户余额不足时抛出”。接着在详细说明中列出所有典型触发场景,每种情况用自然语言描述前置条件和行为结果。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 不要只写:“Thrown when validation fails.”
- 应该写:“当订单金额为负数、收货地址为空或支付方式不支持当前币种时抛出。”
- 如果异常由多个校验点抛出,可分点说明,例如:• 订单总金额小于 0.01 元
• 用户账户被冻结且未提供申诉凭证
• 请求头中缺失必需的 X-Trace-ID
说明异常字段的实际用途
如果自定义异常包含额外字段(如 errorCode、retryable、details),每个字段都要在 JavaDoc 中解释其业务意义和使用建议。不要只写“错误码”,而要说明“该码可用于前端映射友好提示,取值范围为 1001–1099,其中 1005 表示库存预占超时,建议前端显示‘稍后重试’并自动刷新页面”。
- errorCode:用于系统间错误分类,非唯一标识;相同 errorCode 可对应多个不同 message
- isRetryable:true 表示网络抖动或临时资源不可用导致,调用方可指数退避重试;false 表示数据非法或权限不足,重试无意义
- contextMap:存放诊断所需上下文(如 orderNo、userId),日志框架会自动采集,不建议手动打印
给出典型捕获与处理示例
在 JavaDoc 的末尾,用 {@code} 块提供一个真实感强的处理片段,体现异常如何融入业务流程。示例应包含判断逻辑、日志记录、补偿动作(如回滚、降级)和用户反馈,避免空泛的 try-catch。
- 展示如何根据
errorCode分支处理:{@code
if (e.getErrorCode() == 1007) {
log.warn("库存不足,触发降级逻辑", e);
return buildFallbackResponse(orderId, "当前商品库存紧张,已为您推荐相似款");
} else if (e.isRetryable()) {
throw new RetryableException("外部库存服务暂时不可用", e);
} - 提醒不要吞掉异常:避免只写
catch (MyException e) {}或仅打印 stack trace 而不记录关键字段
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










