自定义异常类可通过重载构造方法设置默认错误提示信息,继承Exception或RuntimeException,提供无参、String message、String message+Throwable cause三种构造器,并建议将默认消息提取为常量以提升可维护性与国际化支持。

在 Java 中,自定义异常类可以通过构造方法设置默认的错误提示信息,让使用者不传入消息时也能获得有意义的提示。
继承 Exception 或 RuntimeException 并重载构造方法
最常用的方式是继承 Exception(检查型异常)或 RuntimeException(非检查型异常),并在无参构造方法中调用父类带字符串参数的构造器,传入预设的默认消息。
- 定义一个无参构造方法,在其中调用
super("默认错误提示") - 同时保留一个接收
String message的构造方法,方便调用方自定义提示 - 如果需要支持异常链(即嵌套异常),再提供接收
Throwable cause的构造方法
示例代码
比如定义一个表示用户未登录的异常:
public class NotLoginException extends RuntimeException {
public NotLoginException() {
super("用户尚未登录,请先登录");
}
public NotLoginException(String message) {
super(message);
}
public NotLoginException(String message, Throwable cause) {
super(message, cause);
}
}
这样使用时:throw new NotLoginException(); → 自动携带“用户尚未登录,请先登录”throw new NotLoginException("登录已过期"); → 使用自定义消息
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
避免硬编码,提升可维护性(进阶建议)
如果项目较大或提示需多语言支持,可以把默认消息提取到常量或资源文件中:
立即学习“Java免费学习笔记(深入)”;
- 在类内定义
private static final String DEFAULT_MESSAGE = "用户尚未登录,请先登录"; - 无参构造中调用
super(DEFAULT_MESSAGE) - 后续统一修改提示只需改一处,也便于做国际化扩展
注意区分检查型与非检查型异常的适用场景
默认提示信息的实现方式一致,但选择父类要结合业务语义:
- 用 Exception:适合必须显式处理的业务异常(如参数校验失败、权限不足)
- 用 RuntimeException:适合程序逻辑错误或不可恢复的运行时问题(如空指针、状态非法)
不复杂但容易忽略的是:默认提示要准确、简洁、面向用户或开发者友好,而不是泛泛的“发生错误”。

















