


















这是一个创建于 219 天前的主题,其中的信息可能已经有所发展或是发生改变。
部分代码如下:
} catch (Exception e) {
log.error(e.getMessage(), e);
return RestResult.fail("系统异常");
}
日志文件中显示
2025-11-07 09:43:23.128 [http-nio-20001-exec-934] ERROR StoreOrderServiceImpl:557 - null
java.lang.NullPointerException: null
然后就结束了, 最近出了好多这种问题. 打印空指针,但是完全没有栈相关信息
1 SilentBlade 2025 年 11 月 7 日问题在于:e.getMessage() 可能为 null 。 |
2 Sezxy 2025 年 11 月 7 日java 的 JIT 会优化掉一部分异常的堆栈,尤其是 NPE 启动参数加上-XX:-OmitStackTraceInFastThrow 可以禁用 fast throw 优化 |
3 JYii 2025 年 11 月 7 日正常输出应该是先打印 exception 的 message ,然后紧跟堆栈信息,现在没有,那不就是如 1L 所说。而且 log.error 的第一个参数应是自定义的消息模板,不该直接放异常信息。 |
4 luoke99 2025 年 11 月 7 日是不是由自己封装的异常类触发的,我们之前有个项目就是封装了一个 BizException,有个家伙把 fillInStackTrace() 重写了,导致 log 不会打印异常栈 |
5 Wh1te 2025 年 11 月 7 日这是 JVM 的 OmitStackTraceInFastThrow 优化.RuntimeException 频繁出现,就会省略掉堆栈,比如 NullPointerException ClassCastException ArrayIndexOutOfBoundsException 等等. |
6 Need4more 2025 年 11 月 7 日#2 、#5 正解 |
7 prosgtsr 2025 年 11 月 8 日 via iPhone我们也有这个问题,学习了 |
8 Edward4074 2025 年 11 月 8 日前阵子也碰到这个问题,问下 AI 就好了 |
9 ainyyy 2025 年 11 月 9 日@Edward4074 cursor 代码扫了几遍,告诉我代码没问题. 感觉就是上面说的 jvm 的问题. |
10 Edward4074 2025 年 11 月 9 日@ainyyy 是 jvm 问题没错。我想说的是提问方式,既然代码没问题,那问题就来到了“什么情况下 npe 不打印堆栈信息”,然后 AI 就会回答上面的 JVM 优化问题了 |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。