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

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

2022年06月28日 05時00分 公開
[Cameron McKenzieTechTarget]

関連キーワード

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


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

3.不適切なロジック

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

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

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

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

TechTarget発 エンジニア虎の巻

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

Copyright © ITmedia, Inc. All Rights Reserved.

From Informa TechTarget

お知らせ
米国TechTarget Inc.とInforma Techデジタル事業が業務提携したことが発表されました。TechTargetジャパンは従来どおり、アイティメディア(株)が運営を継続します。これからも日本企業のIT選定に役立つ情報を提供してまいります。

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

news128.png

2024年に視聴者が検索したテレビCM 2位は中国のあのEVメーカー、1位は?
2024年にテレビCMを通して視聴者が気になりWeb検索したものは何だったのか。ノバセルが発...

news078.jpg

Googleの広告収益成長が鈍化、中国のアレが原因?
YouTubeなどのプラットフォームの成長率は、米国の選挙関連支出の急増にもかかわらず低迷...

news174.jpg

OutbrainがTeads買収を完了、新生Teadsとして広告プラットフォームを統合へ
新会社はブランド広告とパフォーマンス広告の両方を最適化し、広告主により良い成果を提...