gpt4 book ai didi

java - Spring @Async 抽象在异常处理方面存在漏洞

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:28:52 26 4
gpt4 key购买 nike

当使用 Spring 的 @Async 注释时,当涉及到方法的 throws 子句中的(已检查)异常时,抽象是有漏洞的。编译器会强制调用者处理异常,但实际上调用者永远不会看到 @Async 方法抛出的异常。相反,根据实现,它将由 Spring 处理和记录,或提供给用户配置的异常处理程序,或在返回值上调用 Future#get() 时生成。

因此,我形成的观点是,@Async 方法通常不应抛出已检查的异常。相反,他们应该将所有已检查的异常包装在 RuntimeException 类型中,以便不存在 throws 子句。

这是一个准确的评估吗?是否有任何工具或编程方法可以修复泄漏?有没有人碰巧知道 Spring 开发人员对此有何看法,或者是否有任何改善这种情况的计划?谢谢!

可能相关:Spring Async method hides exceptions

最佳答案

您的评价可能是正确的。

现在,如果你想处理上述异常,只需这样做:

@Async
void mangle() {
try {
doMangle();
} catch (YourCheckedException e) {
// Handle it
}
}

void doMangle() throws YourCheckedException {
...
}

关于java - Spring @Async 抽象在异常处理方面存在漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27993128/

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