java 异常堆栈日志分析_Java 进阶之路:深入解读 Java 异常堆栈丢失原因
在應(yīng)用程序的開(kāi)發(fā)和維護(hù)中,通常需要借助運(yùn)行日志來(lái)監(jiān)控和定位問(wèn)題。其中,在日志中打印異常堆棧信息對(duì)于定位問(wèn)題極為重要,因此,作為一名工程師,對(duì)打印異常堆棧應(yīng)該不陌生。筆者在實(shí)踐中曾遇到一個(gè)奇怪的現(xiàn)象: Java 應(yīng)用運(yùn)行中,當(dāng)發(fā)生 NullPointerException,ArithmeticException,ArrayStoreException,ClassCastException,ArrayIndexOutOfBoundsException 這幾種異常時(shí),異常的堆棧信息有時(shí)會(huì)莫名其妙地“丟失”。
以 NullPointerException 為例,正常情況下異常堆棧信息如下所示:
java.lang.NullPointerException
at com.exception.test.core.TestNullPointerException.exceptionTest(TestNullPointerException.java:28)
at com.exception.test.core.TestNullPointerException.main(TestNullPointerException.java:15)
基于上述堆棧,工程師可以迅速地定位問(wèn)題。然而,有時(shí)異常的堆棧會(huì)“丟失”,僅能打印出異常的名字,如下所示:
java.lang.NullPointerException
如此簡(jiǎn)略的異常信息對(duì)于定位問(wèn)題幾乎沒(méi)有意義,那么,究竟是什么原因?qū)е逻@種現(xiàn)象出現(xiàn)的呢?要弄清其中緣由,還得從 Java 語(yǔ)言的編譯、執(zhí)行及優(yōu)化原理談起,本場(chǎng) Chat 將為讀者詳細(xì)解答。本場(chǎng) Chat 主要內(nèi)容如下:
現(xiàn)場(chǎng)還原:Java 異常堆棧丟失問(wèn)題;
Java 語(yǔ)言的執(zhí)行原理;
JIT 編譯原理;
JVM 如何確定熱點(diǎn)代碼;
Java 8 后時(shí)代;
源碼解讀:Java 異常堆棧丟失的根因
總結(jié)
總結(jié)
以上是生活随笔為你收集整理的java 异常堆栈日志分析_Java 进阶之路:深入解读 Java 异常堆栈丢失原因的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 浙大JAVA实验题12_2019浙大计算
- 下一篇: java调用oracle的函数,从Jav