2022年06月28日 05時00分 公開
特集/連載

“ぬるぽ”だけじゃない Javaで起きやすい主な「ランタイム例外」と原因は?Javaのよくあるランタイムエラーの5大原因【第3回】

Javaには注意が必要なランタイム例外が幾つかある。アプリケーションを安定的に動作させるためには、こうしたランタイム例外をどう処理するかが重要だ。主なランタイム例外の種類と原因を解説する。

[Cameron McKenzie,TechTarget]

関連キーワード

Java | アプリケーション開発


 プログラミング言語および実行・開発環境「Java」で開発したアプリケーションの実行中に、不適切な動作をすると「ランタイムエラー」(実行時エラー)が発生する。事前に想定可能なランタイムエラーである「ランタイム例外」のうち、ソースコードのロジックの不備にまつわるランタイム例外を紹介する。

3.不適切なロジック

 ソースコードからアプリケーションを生成できても、そのアプリケーションが正しく動作するとは限らない。ソースコードには、アプリケーションのランタイム例外を引き起こす論理的な問題がしばしば潜んでいる。

 Javaには、ランタイム例外のクラス(データと操作をまとめた「オブジェクト」の設計図)の親に当たるスーパークラスの「RuntimeException」がある。Java標準の開発キット(JDK)だけでなく、サードパーティー製ライブラリ(プログラム部品群)にも、RuntimeExceptionの仕様を継承したランタイム例外のクラスが存在する。こうしたクラスのうち、主要なクラスと、それぞれが担う例外を以下に示す。

  • ArithmeticException
    • 0での除算といった不正な算術処理の際の例外
  • ClassCastException
    • クラスの変換が不可能な際の例外
  • ConcurrentModificationException
    • オブジェクトの集合体「コレクション」に対する、整合の取れない同時処理の際の例外
  • IndexOutOfBoundsException
    • 配列(同種のデータの集合)内に存在しない要素へのアクセスの際の例外
  • NullPointerException
    • 「Nullオブジェクト」(存在しないオブジェクト)に対するメソッド(操作)の呼び出しの際の例外(「ぬるぽ」とも呼ぶ)

 ランタイム例外が発生した場合の処理をソースコード内に記述することは、開発の必要条件ではない。とはいえ発生したランタイム例外を無視すると、アプリケーションが停止することになる。開発者は、アプリケーションが発し得るあらゆるランタイム例外に対して、アプリケーション全体を停止するのではなく、問題のあるスレッドのみを停止させるような例外処理を組み込むべきだ。

TechTarget発 エンジニア虎の巻

米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。

ITmedia マーケティング新着記事

news122.jpg

「ペプシチャレンジ」で煽られて焦ったコカ・コーラの“痛恨のやらかし”とは?
長年の間「コーラ戦争」を続けてきたCoca-ColaとPepsi。マーケティング施策でも切磋琢磨...

news149.jpg

デジタル化する顧客体験に関する消費者と企業の認識ギャップ――ナイスジャパン調査
問い合わせの初動としてインターネットやFAQ検索をする人が約8割。デジタルチャネルによ...

news042.jpg

気象データは近未来のデータ 予測に基づき「役に立つ」広告を届ける
気象データを活用することでどのような広告コミュニケーションが可能になるのか。海外の...