2010-11-18 48 views
4

我在捕捉Exception并尝试检查它的getCause(),如果cause是另一个库中定义的类型MyException,则执行一些进一步的操作。无法从Throwable投射到MyException

试图检查e.getCause() instanceof MyException当我得到这个的Eclipse(编译器?)错误:

不兼容的条件操作数类型的Throwable和MyException

在尝试投(MyException) e.getCause(),我得到:

无法从Throwable投射到MyException

我可以编译e.getCause().getClass().equals(MyException.class),这确实会返回true

+3

什么是错误? – aioobe 2010-11-18 19:02:34

+1

任何机会的MyException类被宣布两次,你没有使用你应该使用的? – Guillaume 2010-11-18 19:03:51

+0

我刚刚遇到类似的问题,需要几分钟时间。 '异常e = null;如果(例如InvocationTargetException)它报告这个错误,这个问题的答案是:导入你使用的类。 – hiway 2013-04-11 11:07:46

回答

3

解决方案是MyException继承自外部库中的Exception,但顶级项目没有包含该外部库。当我创建private class时,我发现这个问题extend ed MyException,并且得到了不一致的类型层次结构错误。

+4

在将来的问题中,发布**实际**代码和**实际**错误。 – BalusC 2010-11-18 19:10:31

+0

我同意@BalusC。实际上,编辑原始问题以包含实际错误以便搜索引擎可以对其进行索引并且在类似情况下的其他人将能够找到此解决方案,这是非常审慎的。 – 2010-11-18 19:27:50

+0

当然,那是我的希望。 – 2010-11-18 20:04:19