gpt4 book ai didi

java - 使用 Apache ExceptionUtils.getRootCause 处理异常的正确方法是吗?

转载 作者:行者123 更新时间:2023-12-02 10:34:09 25 4
gpt4 key购买 nike

是否有可能满足“我的代码”中的以下条件(true)?我相信不会,因为 getRootCause 返回转换为 Throwable 的对象。因此它应该检查 Throwable 是否是 MyOwnException 的子类型,但事实并非如此。所以,一般来说,使用 getRootCause 来处理异常是错误的,不是吗?

MyOwnException 部分

public class MyOwnException extends Exception {
// ....
}

Apache 的 ExceptionUtils.getRootCause

public static Throwable getRootCause(Throwable throwable) {
List list = getThrowableList(throwable);
return (list.size() < 2 ? null : (Throwable)list.get(list.size() - 1));
}

我的代码

try {
// do something
} catch (Exception e) {
try {
Throwable exc = ExceptionUtils.getRootCause(e);
if (exc instanceof MyOwnException) {
// do something
}
}
}

最佳答案

instanceof 将检查对象实例的实际运行时类型。保存该对象的变量声明的编译时类型是什么并不重要。

所以你的条件有效:如果根本原因是 MyOwnException 那么你的 if block 的主体将执行。

关于java - 使用 Apache ExceptionUtils.getRootCause 处理异常的正确方法是吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53415265/

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