gpt4 book ai didi

java - 在新的执行线程中使用 catch throwable 或 catch Exception

转载 作者:搜寻专家 更新时间:2023-11-01 01:38:14 25 4
gpt4 key购买 nike

我需要在启动新线程时找出 try-catch 的最佳实践。

就个人而言,我更喜欢选项 2。

哪个选项是最佳实践?是否有任何因素可能使任一选项在某些情况下成为最佳实践,而在其他情况下却不是?

选项 1

public void run(){
try{
//do something
}catch(Exception e){
// log
}
}

选项 2

public void run(){
try{
//do something
}catch(Throwable t){
// log
}
}

编辑:假设您正在编写必须满足严格代码审查的代码。编辑 2:我知道以上两个选项之间的区别。我只是好奇什么被其他人视为“100% 正确”。

最佳答案

我会在线程上使用 setDefaultUncaughtExceptionHandler(...) 来捕获 runnable 无法正确处理的内容,但是当涉及到 runnable 本身时,它实际上取决于它必须实现的目标并合理地预期考虑合理的执行上下文。

另一方面,创建一个单独的线程来执行可运行对象并不是一个好策略恕我直言,FutureTask更好地处理这些问题。

关于java - 在新的执行线程中使用 catch throwable 或 catch Exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5721608/

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