最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Java中 自定义异常如何编写包含 String message 和 Throwable cause 的构造函数
时间:2026-07-14 09:29:57 编辑:袖梨 来源:一聚教程网
Java自定义异常需显式定义String message和Throwable cause双参构造函数并调用super(message, cause);根据是否强制处理选择继承Exception或RuntimeException;建议补充单参、无参等常用构造函数;可包装底层异常保留堆栈信息。
Java中自定义异常类,若要支持同时传入 String message 和 Throwable cause,需显式定义对应构造函数,并调用父类(如 Exception 或 RuntimeException)的双参构造方法。
继承合适的父类
根据异常是否需要强制处理,选择继承 Exception(检查型异常)或 RuntimeException(非检查型异常)。两者都提供 String, Throwable 的构造函数,可直接复用。
编写双参构造函数
在自定义异常类中声明构造函数,参数顺序为 String message 和 Throwable cause,并在函数体内通过 super(message, cause) 调用父类对应构造方法:
public class MyCustomException extends Exception { public MyCustomException(String message, Throwable cause) { super(message, cause); }}
可选:补充其他常用构造函数
为提升易用性,通常一并提供以下构造函数:
立即学习“Java免费学习笔记(深入)”;
-
MyCustomException(String message)→ 调用super(message) -
MyCustomException(Throwable cause)→ 调用super(cause) - 无参构造函数
MyCustomException()→ 调用super()
使用示例
抛出时可包装底层异常,保留原始堆栈信息:
try { // 可能抛出 IOException Files.readAllBytes(Paths.get("missing.txt"));} catch (IOException e) { throw new MyCustomException("读取配置文件失败", e);}
这样既提供了业务含义的提示消息,又不丢失原始异常的根因和堆栈,便于排查。
相关文章
- 具有审计签字权的职业叫什么 蚂蚁新村1月14日答案最新 07-15
- Eagle如何更换主题 07-15
- 《神探杰克鼠》小内侦探成就解锁指南 07-15
- 生存33天末世联赛如何通关 07-15
- 《神探杰克鼠》薄命贝蒂的点点滴滴成就解锁指南 07-15
- 哪种海洋鱼类会建造精美的几何图形巢穴来求偶 神奇海洋1月14日答案 07-15