gpt4 book ai didi

java - 在 java 中访问 ZOmbie 线程堆栈?

转载 作者:行者123 更新时间:2023-11-29 05:33:54 25 4
gpt4 key购买 nike

我有一个类似的问题。

让我们假设以下方法由线程(A) 运行。

void run(){
//some work
FileInputStream fis=new FileInputStream(new File("/home/share/_config"));
//some work with fis
}

并假设存在一个不可捕获的错误,所以正如我从 java 线程中得到的那样,我们可以使用 setUncaughtExceptionHandler() 方法添加一个未捕获的异常管理器,所以问题是,我将如何从终止的线程堆栈访问我打开的文件 (fis) 并从处理程序关闭它?

最佳答案

注意:代码适用于 Java 7+

不要这样做!通常,打开流的方法也应该关闭它!将流放在 try-with-resource 子句中,然后它会自动关闭:

void run() {
//some work
try (FileInputStream fis=new FileInputStream(new File("/home/share/_config"))) {
//some work with fis
}
}

如果执行流离开 try block ,则流 fis 将被关闭 - 无论是因为它完成了它的工作还是由于异常。

也可以通过使用分号 (;) 作为分隔符在同一个 try-with-resource 子句中打开多个输入流。参见 http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html了解详情。

关于java - 在 java 中访问 ZOmbie 线程堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20168343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com