저는 C++에서 Java로 왔습니다. C++ 세계에서 우리는 예외 안전에주의를 기울이고 돌연변이 자 자체에 의해 던져진 예외 나 그것이 위임하는 메소드 (최소, 강하며, no-throw)에 던져진 예외에도 불구하고 뮤 테이터가 다른 보장을 제공 할 수 있음에 주목하십시오. 강력한 예외 보장이있는 메소드를 구현하려면 일부 기본 연산이 절대로 예외를 발생시키지 않아야합니다. JLS에서는 어느 조작이 어떤 종류의 예외를 throw 할 수 있는지에 관한 명령문을 작성하지만 VirtualMachineError
오류는 문제점을 나타냅니다. JLS Quoth :No-throw VirtualMachineError 보장
내부 오류 또는 자원 제한은 자바 프로그래밍 언어 의 의미를 구현하여 Java 가상 머신 방지; 이 경우 하위 클래스 인
VirtualMachineError
의 인스턴스가 발생합니다.
JLS는 VirtualMachineError
에 대해 더 이상 말하지 않습니다. "내부 오류"는 JVM의 버그를 의미하므로이 경우에는별로 관심이 없습니다. JVM의 버그에도 불구하고 모든 배팅은 해제되어 있습니다. 그러나 "자원 제한"의 경우는 어떻습니까? 자원 제한으로 인해 절대로 작동하지 않을 것이라는 보장이있는 작업이 있습니까? Java Virtual Machine Specification Quoth
답변에 가장 가까운 것은'try {...} catch (Throwable t) {}'입니다. 물론 메모리가 없어지면 어떤 연속성도 거의 불가능할 것입니다. 이제는 C++과 다르지 않습니다. –
나는 내 자신의 질문에 대답하고있다. FAQ도이 점을 강조합니다. – Raedwald