gpt4 book ai didi

java - 处理默默终止线程的意外异常

转载 作者:行者123 更新时间:2023-12-01 11:28:01 25 4
gpt4 key购买 nike

我有一个线程,有时会默默地终止,我想用 try/catch block 包围该操作,以找出正在发生的情况而不杀死该线程。

我最初使用 try/catch (Exception e) block 包围 run 中的操作,但担心这可能会忽略 run() 依赖项引发的已检查异常,并且无法正确处理。另一方面,我担心(未经检查的)错误也会被吞噬。

有人建议,作为短期防御,我应该将当前的 run() 方法重命名为 runInternal() 之类的名称,不声明任何已检查的异常,并将 catch/log Throwable 放在 run() 的调用周围runInternal()。

我不明白这有什么帮助。

最佳答案

I want to surround the operation with a try/catch block to find out what is going on without killing the thread.

快速回答:您无法保存线程。一旦抛出异常,作为局外人,您最多可以获得堆栈跟踪。

使用 runInternal 技术进行包装将帮助您记录错误的堆栈跟踪,而不是让线程默默地终止。

但是,您真正想要在这里做的是附加一个调试器,例如 Eclipse,并将其设置为在捕获和未捕获的异常上暂停,直到找到您要查找的异常。这将在故障点暂停线程,而不会杀死它。

Break when exception is thrown

关于java - 处理默默终止线程的意外异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30648511/

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