在Java中自定义异常类时,需将errorCode声明为private final字段并在构造器中初始化,再提供标准的public getErrorCode() getter方法以支持框架识别和序列化。

OpenJDK 24
OpenJDK 24 Windows x64 官方参考实现(24+36),适合 Windows 环境进行 Java 开发、编译、运行和版本兼容性验证。
下载
<p>在Java中自定义异常类时,给错误码(errorCode)提供getter方法,核心就是把errorCode作为成员变量封装,并暴露一个公共的、无参数的getErrorCode()方法。</p>
<H3>定义带errorCode字段的异常类</H3>
<p>继承Exception(或RuntimeException)后,声明private final int errorCode(或String),并在构造器中初始化。推荐用final修饰,确保不可变性。</p>
<ul>
<li>使用int类型适合数字错误码(如1001、500)</li>
<li>使用String类型更灵活(如"USER_NOT_FOUND"、"VALIDATION_FAILED")</li>
<li>建议同时提供带message和errorCode的构造器,兼顾可读性和结构化信息</li>
</ul>
<H3>添加标准getter方法</H3>
<p>getter方法命名必须是getErrorCode(),遵循JavaBean规范,这样框架(如Spring、Jackson)才能自动识别并序列化该字段。</p>
<ul>
<li>方法签名:public int getErrorCode() 或 public String getErrorCode()</li>
<li>不要加参数、不要抛异常、不要做复杂逻辑——只返回字段值</li>
<li>如果字段是final且构造时已赋值,getter里直接return即可</li>
</ul>
<H3>完整示例(int型errorCode)</H3>
<p><font color="gray">(以下为可直接运行的简洁写法)</font></p>
<pre><code>public class BusinessException extends Exception {
private final int errorCode;
public BusinessException(int errorCode, String message) {
super(message);
this.errorCode = errorCode;
}
public int getErrorCode() {
return errorCode;
}
}</code></pre>
<p>使用时:<code>exception.getErrorCode()</code> 即可获取错误码,配合日志、统一响应体或前端提示都很方便。</p>
<H3>进阶建议:支持多构造器与链式设计</H3>
<p>实际项目中常需兼容不同调用场景:</p>
<ul>
<li>提供仅传errorCode的构造器(内部设默认message)</li>
<li>提供传errorCode + message + cause的构造器(便于包装底层异常)</li>
<li>若需扩展,可增加getCode()别名方法,但主getter仍应为getErrorCode()</li>
</ul>