2010-11-18 27 views
4

私はExceptionをキャッチし、causeが別のライブラリで定義されたタイプのMyExceptionである場合、いくつかのさらなるアクションを実行して、getCause()を調べようとしています。ThrowableからMyExceptionにキャストできない

e.getCause() instanceof MyExceptionかどうかを確認しようとしたとき、私は、このEclipseの(コンパイラ?)エラーを取得しています:

互換性のない条件付きオペランドの型は、ThrowableをしてMyException

(MyException) e.getCause()をキャストしようとすると、私が手:

ThrowableからMyExceptionにキャストできません。

e.getCause().getClass().equals(MyException.class)をコンパイルできます。これはtrueを返します。

+3

エラーは何ですか? – aioobe

+1

MyExceptionクラスが2回宣言され、使用する予定のクラスを使用していない可能性があります。 – Guillaume

+0

私はちょうど同様の質問に遭遇する、それは数分かかります。 '例外e = null; if(e instanceof InvocationTargetException) 'がこのエラーを報告した場合、この質問に対する答えは次のとおりです。使用するクラスをインポートします。 – hiway

答えて

3

解決策は、MyExceptionは外部ライブラリのExceptionから継承されていますが、トップレベルプロジェクトにはその外部ライブラリは含まれていませんでした。私はprivate classextend ed MyExceptionを作成したときにこれを発見し、矛盾したタイプの階層エラーが発生しました。

+4

今後の質問では、**実際の**コードと**実際の**エラーを投稿してください。 – BalusC

+0

私は@BalusCに同意します。実際には、実際のエラーを含むように元の質問を編集して、検索エンジンでインデックスを作成できるようにすることは非常に賢明です。同様の状況の他のユーザーもこの解決策を見つけることができます。 –

+0

確かに、それは私の希望でした。 –

関連する問題