# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (javaCalls.cpp:64), pid=3560, tid=140207058839296
# guarantee(!thread->is_Compiler_thread()) failed: cannot make java calls from the compiler
#
# JRE version: Java(TM) SE Runtime Environment (7.0_65-b17) (build 1.7.0_65-b17)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.65-b04 mixed mode linux-amd64 compressed oops)
错误最终证明我在抛出异常之前忘记了一条pop
指令。 (抛出Exception之前的最后一条指令是checkcast
已成功,而Java并不喜欢它的结果仍在堆栈中。)
[另外(应该是显而易见的,但我意识到我的话可能令人困惑):在执行错误代码期间没有抛出异常(因为代码仍然被编译而没有被执行),但是在{之后的下一条指令{1}}等于抛出异常。]
但是,我很好奇,这会导致此错误消息,checkcast
什么样的"电话"编译器是否会认为它会尝试制作?