从以上代码(注意看加粗的红线字体部分)我们可以知道以下信息
- 发生 stackoverflow 还有空指针错误,确实都发送了 SIGSEGV,只是虚拟机不选择退出,而是自己内部作了额外的处理,其实是恢复了线程的进程,并抛出 StackoverflowError 和 NPE,这就是为什么 JVM 不会崩溃且我们能捕获这两个错误/异常的原因
- 如果针对 SIGSEGV 等信号,在以上的函数中 JVM 没有做额外的处理,那么最终会走到 report_and_die 这个方法,这个方法主要做的事情是生成 hs_err_pid_xxx.log crash 文件(记录了一些堆栈信息或错误),然后退出
推荐阅读
- 《我的前半生》贺涵为什么喜欢罗子君-,我的后半生罗子君和贺涵在一起了吗-
- 幻视为什么克制奥创,幻视是奥创吗-
- 一个单位的风气很重要,一个单位的风气为什么不正-
- 周星驰一下子老了,周星驰为什么变那么老-
- 为什么蝴蝶飞舞没有声音,而蜜蜂却嗡嗡响?
- 慈禧太后为什么不喜欢珍妃,慈禧是怎么把珍妃推入井中的-
- 二驴为什么说辛巴,辛巴哭着骂二驴-
- 为什么佛教起源于印度但没在印度流传下来,印度是佛教的发源地为什么印度没有佛教-
- 为什么看以前的照片觉得好看,照相看起来很老-
- 日本校服女装裙子为什么那么短,日本女生校服为什么这么短-