You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中仅获取自定义异常消息(排除类型、堆栈信息)

解决方案

针对你提到的两种异常抛出场景,要仅提取自定义消息且不依赖控制台输出,可以通过以下方式实现:

场景1:直接抛出指定消息的异常

当你直接抛出异常时,注意原代码缺少new关键字,需先修正;之后在捕获该异常时调用getMessage()方法即可,这个方法会返回你传入的自定义字符串,不包含异常类型、堆栈等多余信息:

try {
    if (someCondition) {
        throw new Exception("some message");
    }
} catch (Exception e) {
    String customMsg = e.getMessage();
    // 此处可将customMsg用于后续业务逻辑,比如存入日志系统、封装为响应数据等
}

场景2:捕获异常后重新抛出自定义消息的异常

这种场景下,只需在捕获重新抛出的异常时调用getMessage()方法,就能拿到你设置的自定义消息:

// 异常抛出逻辑
try {
    something; // 执行可能抛出ArithmeticException的代码
} catch (ArithmeticException e) {
    throw new Exception("some other message");
}

// 上层调用时捕获并提取消息
try {
    // 调用上述包含异常抛出逻辑的方法
} catch (Exception e) {
    String customMsg = e.getMessage();
    // 对customMsg进行业务处理
}

关键说明

  • Exception类的getMessage()方法本身就是设计用来返回构造异常时传入的自定义消息,天然满足你“仅保留自定义消息”的需求;
  • 该方法不会返回异常类型、堆栈跟踪或类名等无关内容;
  • 你可以将获取到的customMsg用于任何业务场景,完全符合“不能输出到控制台,必须通过Exception相关方式处理”的要求。

内容的提问来源于stack exchange,提问作者atelten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 14:52:16