是否有可能满足“我的代码”中的以下条件(真)?我相信没有,因为2016-12-01T00:00:18.856+01:00
返回了强制转换为getRootCause
的对象。因此,它应该检查Throwable
是否是Throwable
的子类型,这是不正确的。因此,通常来说,使用MyOwnException
处理异常是错误的方法,不是吗?
MyOwnException部分
getRootCause
Apache的ExceptionUtils.getRootCause
public class MyOwnException extends Exception {
// ....
}
我的代码
public static Throwable getRootCause(Throwable throwable) {
List list = getThrowableList(throwable);
return (list.size() < 2 ? null : (Throwable)list.get(list.size() - 1));
}
答案 0 :(得分:1)
instanceof
将检查对象实例的实际运行时类型。拥有对象的变量的已声明编译时类型是什么都没关系。
因此您的情况有效:如果根本原因是MyOwnException
,那么您的if
程序段的主体将执行。