Java

【Java】例外処理をする時に使える「instanceof」演算子

Javaで例外処理をする際に、「try-catch」文を使いますが、今回はその「catch」文の中に書くと便利な「instanceof」演算子を使ったプログラムを紹介します。

「instanceof」演算子は、「変数 instanceof クラス名」と記述して使い、変数が比較対象のクラスの型であるか、もしくは継承している場合に「true」を返し、もしそうでなければ「false」を返します。

まずは以下のファイル入力の例をご覧ください。

(Main.java)

「IOException」だけでは具体的な原因がわかりませんが、このように「instanceof」演算子を使って条件文を書くことによって、なにが原因となっているのかを判明させることができます。

原因を具体的に知ることはプログラミングにおいて大事で、この「instanceof」演算子をしっかり活用できると、メンテナンス性の高いプログラムができ、バグ発見のしやすさに繋がります。

(応用)InvocationTargetExceptionの原因を探る

自分でプログラムを組んでいる時に、「InvocationTargetException」が発生したものの、原因が分からずじまいになった経験はありますでしょうか。

そんな時にも「instanceof」演算子が役に立ちます。

試しに以下のプログラムで検証してみます。

(Main.java)

結果

このように、「InvocationTargetException」の具体的な原因を突き止めることができ、余計なエラー文も出ませんでした。

ちなみにこの「ArithmeticException」は、「0で除算」をする際に発生する例外です。

今回紹介した「instanceof」演算子を使う場面は多いとは言えませんが、知っておいて損はありませんし、バグ発見に役立つ機能なので是非つかってみてください。

ABOUT ME
IT系だんし
プログラミングが大好きな人。 趣味でゲームやツール製作をしながら、プログラミング記事を書き続けています。