Java 致命错误和非致命运行时错误之间有什么区别?
“致命的运行时错误会导致程序 在未成功执行非致命性试验的情况下立即终止试验 运行时错误允许程序运行到完成,通常会产生错误 不正确的结果”Java 致命错误和非致命运行时错误之间有什么区别?,java,Java,“致命的运行时错误会导致程序 在未成功执行非致命性试验的情况下立即终止试验 运行时错误允许程序运行到完成,通常会产生错误 不正确的结果” 我已经阅读了这些信息,但我需要更多的例子来说明这个概念…例如OutOfMemoryError很难恢复(如果可能的话),而通过将信息返回给用户可以轻松处理IllegalArgumentException。像OutOfMemoryError这样的致命错误,VirtualMachineError等通常不承担恢复操作 说: 错误是Throwable的一个子类,它表示一
我已经阅读了这些信息,但我需要更多的例子来说明这个概念…例如
OutOfMemoryError
很难恢复(如果可能的话),而通过将信息返回给用户可以轻松处理IllegalArgumentException
。像OutOfMemoryError这样的致命错误,VirtualMachineError等通常不承担恢复操作
说:
错误是Throwable的一个子类,它表示一个合理的应用程序不应该试图捕获的严重问题。大多数此类错误都是异常情况。ThreadDeath错误虽然是“正常”情况,但也是错误的一个子类,因为大多数应用程序不应该尝试捕捉它。
方法不需要在其throws子句中声明在方法执行期间可能抛出但未捕获的任何错误子类,因为这些错误是不应该发生的异常情况。也就是说,为了编译时检查异常,错误及其子类被视为未检查的异常
例如,如果运行递归任务时没有中断执行的基本情况
int recursiveSum(int n){
return n + recursiveSum(n+1);
}
您会遇到StackOverflowerError,这意味着您填充了堆栈,JVM无法继续正常执行程序
与另一个示例一样,由于硬件或internet连接问题,可能会出现错误
但检查异常通常是程序的正常行为。它为使用您的应用程序的用户定义约束。“未成功执行其非致命运行时错误”???