java - 抛出 main 函数不会捕获错误

标签 java error-handling

这个问题在这里已经有了答案:





Unhandled Exception in Java

(2 个回答)


去年关闭。




我在理解 Thread.sleep() 的原因时遇到问题,JVM 捕获了 InterruptedException 错误,而 ThreadExecp.fun() 则不是这种情况。

public class ThreadExecp {
static void fun() throws InterruptedException
{
    System.out.println("Inside fun(). ");
    throw new InterruptedException ();
}

public static void main(String args[]) throws InterruptedException {

    Thread.sleep(10000);
    System.out.println("done 1");
    ThreadExecp.fun();
    System.out.println("Done");

}
}
实际上在 main 方法中发生的错误在哪里被捕获,为什么有些错误可以简单地抛出而有些需要在 try-catch 中捕获?

最佳答案

InterruptedException在这里任何地方都没有被捕获,它只是沿着调用堆栈传播。并且您的代码中没有任何内容可以捕获和处理它,JVM 没有其他选择,只能处理未处理的异常。

关于java - 抛出 main 函数不会捕获错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63220477/

相关文章:

java - 使用 Java 进行排序和二分搜索

java - 声音捕捉。 MacOS 权限。 Java 音频 API

javascript - 我的功能有一个我似乎无法解决的问题。目前,它说无法在连接槽处读取undefined的 'split'属性

javascript - node.js csv如何处理不良数据

jenkins - 我何时以及为什么应该在 Jenkinsfiles catch block 中抛出错误? (脚本化管道)

java - 如何让我用java编写的程序知道某些文件类型?

java - Handlebars if 方法返回 null/空字符串

java - Guice 在执行 CompletableFuture 时抛出 OutOfScopeException

backbone.js - marionette.js中的全局错误处理

c++ - 使用if(condition)返回: Unbelievable [closed]时发生C++内存错误