惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cisco Talos Blog
Cisco Talos Blog
K
Kaspersky official blog
T
The Exploit Database - CXSecurity.com
NISL@THU
NISL@THU
AWS News Blog
AWS News Blog
V2EX - 技术
V2EX - 技术
Google DeepMind News
Google DeepMind News
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
Security @ Cisco Blogs
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Recent Commits to openclaw:main
Recent Commits to openclaw:main
J
Java Code Geeks
Microsoft Azure Blog
Microsoft Azure Blog
Attack and Defense Labs
Attack and Defense Labs
Jina AI
Jina AI
The Last Watchdog
The Last Watchdog
W
WeLiveSecurity
H
Help Net Security
V
Visual Studio Blog
宝玉的分享
宝玉的分享
C
Cybersecurity and Infrastructure Security Agency CISA
T
Threat Research - Cisco Blogs
IT之家
IT之家
Hugging Face - Blog
Hugging Face - Blog
Latest news
Latest news
T
Tor Project blog
I
Intezer
美团技术团队
GbyAI
GbyAI
T
Tailwind CSS Blog
Last Week in AI
Last Week in AI
博客园 - 三生石上(FineUI控件)
Google DeepMind News
Google DeepMind News
Scott Helme
Scott Helme
Y
Y Combinator Blog
博客园 - 司徒正美
T
Tenable Blog
O
OpenAI News
N
News and Events Feed by Topic
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
V
Vulnerabilities – Threatpost
P
Palo Alto Networks Blog
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Threatpost
Google Online Security Blog
Google Online Security Blog
Apple Machine Learning Research
Apple Machine Learning Research
云风的 BLOG
云风的 BLOG
Help Net Security
Help Net Security

Java

华为的毕昇 JDK 8 AppCDS 特性稳定吗? - V2EX 我把 Java 开发的 kkRepo 支持 AOT 编译, 1s 极速启动,空闲内存小于 200MB - V2EX fastjson1.x 最新版本疑似又出 RCE 漏洞了 - V2EX 讲讲我怎么获得 kkRepo 的首个企业用户,成功替换掉 Nexus,每年节省 $1,620 PRO 订阅费用 - V2EX Sonatype 正引入 Maven Central 仓库发布使用情况可见性和针对高流量发布活动的限制 - V2EX 让 Java 再次伟大,没有人比我更懂得如何打包!(分享一个四两拨千斤的多 jar 打包 exe 方式) - V2EX 使用 kkRepo 搭建 Maven 私服 - V2EX Nexus 的平替 neuxs-plus 开源涉嫌商标侵权,被迫改名 kkRepo - V2EX 我在 IDEA tab 里养了一只猫 - V2EX Java 确实是内存高效的 用 AI 把 visualvm 的部分功能界面换了个马甲 - V2EX javaer 现在出去面试 问哪些内容 sa-token + spring cloud gateway 过滤器顺序问题 - V2EX 关于在 wsl 中使用 idea 进行 Java 开发的问题 - V2EX 求助, Fortify 漏扫问题解决 - V2EX 微信 ClawBot 和企微 AIBot 的 Java SDK - V2EX 老业务信创重构选型大家有啥建议 - V2EX ai 编程的情况在你们使用什么 IDE - V2EX 下面这段 Java 多态的代码,如何才能改为 Go、 Python 、JS、C++版本? - V2EX JDK 26 发布,非 lts 版本 - V2EX DoytoQuery vs SpringDataJPA - V2EX 求推荐比较优秀的 springboot 脚手架项目 - V2EX vscode 里自用 Java 开发插件:支持复制引用路径、rest 接口路径、Arthas 命令等功能 - V2EX 自荐 Java 多线程神器——ThreadForge ,让多线程从此简单 - V2EX 屎山老项目想用 ai 实现自动化测试,有什么可落地的方案么 - V2EX WebFlux 项目 被访问后 访问方关闭连接 无法捕获 SocketException: Connection reset - V2EX 有人用 RUOYI 框架吗? - V2EX 关于商用 jdk 收费的问题,有遥测吗? - V2EX IDEA 在 macOS 上卡住 - V2EX Java : 2026 年 SpringBoot, Quarkus, Solon ? - V2EX 佬们有没有比较好的 Java 脚手架 - V2EX 一个对比 JavaORM 框架的小仓库 - V2EX 想问一个关于 IO 流的细节 - V2EX 关于我在腾讯云 windows 服务器起了一个后端服务,但是服务器本地都请求不到的问题 11 - V2EX 分享一个 idea 的无响应 bug,如果你也遇到 - V2EX JNI 是否有向"简洁"演化的可能? - V2EX 多实例 springboot 微服务重启时 Counter 类型指标重置问题 - V2EX 讨论个问题:该不该重写 equal 和 hashcode - V2EX 求助 泛型转换碰到一个很奇怪的问题 Object 放 Redis 自动变成 JSONObject 了 - V2EX Java Agent 该怎么快速学习?有教程文档推一下吗? - V2EX 能不能别用那烦人的 MyBatis-Plus 了! - V2EX 作为 Java boy 你们业余时间会学点什么? - V2EX 各位 v 友们!有无无敌好用的剪辑软件求推荐! - V2EX 如何从反射的 Field/Method 动态构造 mybatis 的 SFunction? - V2EX Java 得冗余与啰嗦是不是对 AI 不友好 - V2EX 为何 RestTemplate 无法定制请求 - V2EX 日经吐槽:现在的 Java 语言真的有点令人恶心 - V2EX 新手 javaer 咨询几个问题 - V2EX 自学 Java 看不懂报错信息和代码,有什么推荐 ai 拿来自学的吗? - V2EX 用 netty 编写代理服务器,切换出口 IP,不能及时生效 - V2EX mysql 慢日志分析排查小工具 1.0.0 - V2EX Preferences.userNodeForPackage(Object.class)存储位置在哪里? - V2EX vscode 中 augment code 怎么使用 mcp - V2EX mysql 慢日志分析排查小工具 - V2EX Java 的一次编译到处运行在目前还有优势吗 - V2EX 现在学 Java 算 49 年入国军吗 - V2EX 推广一下自己刚撸的 IDEA 插件—Bean Copy 助手 - V2EX 几千万的数据量,层级权限下的列表展示页查询应该怎么设计? - V2EX 大家生产环境会一直开着 JFR 吗 - V2EX 有没有新版 Java 的佬(jdk25 和 21 这种), 上手还是走官方文档吗 - V2EX Java 程序员面经怎么准备 - V2EX
问一个日志不打印栈信息的问题 - V2EX
ainyyy · 2025-11-07 · via Java

这是一个创建于 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 

然后就结束了, 最近出了好多这种问题. 打印空指针,但是完全没有栈相关信息

  • 日志
  • 打印
  • 栈信息

    11 条回复    2025-11-10 13:45:23 +08:00

    SilentBlade

    1

    SilentBlade      2025 年 11 月 7 日

    问题在于:e.getMessage() 可能为 null 。
    例如,在 NullPointerException 没有具体 message 时,e.getMessage() 返回 null 。于是日志输出时会变成:
    null
    java.lang.NullPointerException: null
    此时虽然异常对象 e 传入了,但很多日志框架(例如 logback 或 log4j2 )在第一个参数是 null 时会只打印异常类型,而不打印堆栈。
    直接使用占位符打印日志吧,例如:
    log.error("Error occurred: {}", e.getMessage(), e);

    Sezxy

    2

    Sezxy      2025 年 11 月 7 日   ❤️ 1

    java 的 JIT 会优化掉一部分异常的堆栈,尤其是 NPE

    启动参数加上-XX:-OmitStackTraceInFastThrow 可以禁用 fast throw 优化

    JYii

    3

    JYii      2025 年 11 月 7 日

    正常输出应该是先打印 exception 的 message ,然后紧跟堆栈信息,现在没有,那不就是如 1L 所说。而且 log.error 的第一个参数应是自定义的消息模板,不该直接放异常信息。

    luoke99

    4

    luoke99      2025 年 11 月 7 日

    是不是由自己封装的异常类触发的,我们之前有个项目就是封装了一个 BizException,有个家伙把 fillInStackTrace() 重写了,导致 log 不会打印异常栈

    Wh1te

    5

    Wh1te      2025 年 11 月 7 日   ❤️ 1

    这是 JVM 的 OmitStackTraceInFastThrow 优化.RuntimeException 频繁出现,就会省略掉堆栈,比如 NullPointerException ClassCastException ArrayIndexOutOfBoundsException 等等.
    你往前找到最开始出现这个异常的日志,那里就有堆栈信息

    Need4more

    6

    Need4more      2025 年 11 月 7 日

    #2 、#5 正解
    jvm 针对高频异常会复用预分配实例以提升性能。若需完整堆栈,需显式禁用参数-XX:-OmitStackTraceInFastThrow

    prosgtsr

    7

    prosgtsr      2025 年 11 月 8 日 via iPhone

    我们也有这个问题,学习了

    Edward4074

    8

    Edward4074      2025 年 11 月 8 日

    前阵子也碰到这个问题,问下 AI 就好了

    ainyyy

    9

    ainyyy      2025 年 11 月 9 日

    @Edward4074 cursor 代码扫了几遍,告诉我代码没问题. 感觉就是上面说的 jvm 的问题.

    Edward4074

    10

    Edward4074      2025 年 11 月 9 日

    @ainyyy 是 jvm 问题没错。我想说的是提问方式,既然代码没问题,那问题就来到了“什么情况下 npe 不打印堆栈信息”,然后 AI 就会回答上面的 JVM 优化问题了