Error handling JVM应该在StackOverflowerr上重述吗?
堆栈溢出错误会造成什么损害?Error handling JVM应该在StackOverflowerr上重述吗?,error-handling,jvm,stack-overflow,Error Handling,Jvm,Stack Overflow,堆栈溢出错误会造成什么损害? 由于SOE是一个异步抛出的错误(OOME是另一个示例),可以在任何代码块的中间抛出,因此可能会使对象处于不一致的状态,因此JVM是否应该在堆栈溢出错误之后重新启动。这在锁抽象(包括标准库中的锁类)中尤其明显,这些抽象可能处于某种意外状态(例如永久锁定而没有所有者) 它不会破坏内部JVM状态,因此在OOM之后可以认为VM本身是正常的,但是应用程序和库级别的状态应该被认为是不一致的,除非所讨论的代码经过了非常仔细的设计,能够抵抗异步异常 因此,是的,除非专门针对这种情况
由于SOE是一个异步抛出的错误(OOME是另一个示例),可以在任何代码块的中间抛出,因此可能会使对象处于不一致的状态,因此JVM是否应该在堆栈溢出错误之后重新启动。这在锁抽象(包括标准库中的锁类)中尤其明显,这些抽象可能处于某种意外状态(例如永久锁定而没有所有者) 它不会破坏内部JVM状态,因此在OOM之后可以认为VM本身是正常的,但是应用程序和库级别的状态应该被认为是不一致的,除非所讨论的代码经过了非常仔细的设计,能够抵抗异步异常 因此,是的,除非专门针对这种情况而设计,否则在遇到国有企业后重启通常会更好