Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 致命错误和非致命运行时错误之间有什么区别?_Java - Fatal编程技术网

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连接问题,可能会出现错误

但检查异常通常是程序的正常行为。它为使用您的应用程序的用户定义约束。

“未成功执行其非致命运行时错误”???