【发布时间】:2014-01-09 21:22:14
【问题描述】:
我的程序倾向于使用大量包装异常(例如,SwingWorker 将其所有异常包装在 ExecutionException 中)。因此,我正在尝试编写一种方法,该方法允许我检查异常或其任何原因是否是 instanceof 异常类型,但我不知道如何(如果可能的话)传递一个类名作为方法的参数。
到目前为止,我有这个:
public static boolean errorOrCausesInstanceOfClass(Throwable e, Class c) {
return e != null && (e.getClass().equals(c) || (e.getCause() != null && errorOrCausesInstanceOfClass(e.getCause(), c)));
}
但这只有在e.getClass() 完全等于c.getClass() 时才有效。但我也想检查一下是否使用instanceof 来捕获子类。
有没有办法做到这一点?
【问题讨论】:
-
Class 是原始类型,应该在您的方法上参数化,例如 (Throwable e, Class> c)
标签: java instanceof