假设下面的内容将通过堆栈溢出
while(true){
java.util.Date d = new java.util.Date();
}
是否有可能发现错误?像这样
try {
while(true){
java.util.Date d = new java.util.Date();
}
}catch (Throwable t){
}
答案 0 :(得分:1)
是的,您可以从代码中捕获它。但是,来自here
错误是
Throwable
的子类,表示合理的应用程序不应该尝试捕获的严重问题。大多数此类错误都是异常情况。 ThreadDeath错误,虽然"正常" condition,也是Error的子类,因为大多数应用程序都不应该尝试捕获它。不需要在
throws
子句中声明在执行方法期间可能抛出但未捕获的Error
的任何子类,因为这些错误是不应该发生的异常情况。也就是说,出于编译时异常检查的目的,Error及其子类被视为未经检查的异常。