我想问一下首先调用哪个catch块,如果声明类似
try {
...some statement...
} catch (Exception ex) {
System.out.println("out of memory exception");
} catch (OutOfMemoryError error) {
System.out.println("out of memory error");
}
此处语句导致OutOfMemoryError
。
我查了Order of catching exceptions in Java
这是不同的,如果代码无缝运行,您无法预测会出现RunTimeException
。
答案 0 :(得分:4)
请记住对象层次结构:
如果出现问题,可能是错误或异常。这里没有第一个,因为这些类是兄弟姐妹,而不是父母/孩子。
答案 1 :(得分:0)
java.lang.Exception和java.lang.Error(OutOfMemory是一个错误)与其公共父Throwable的每个其他异常无关。所以这里没有第一个或第二个。
OutffMemory发生在你的jvm死亡(堆满了)时很少见,所以只需在其中进行清理工作。