Javaエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnetJava
  2. Javaコラム
  3. Java TIPS
  4. Java例外処理とは?例外処理の書き方も紹介!

Java例外処理とは?例外処理の書き方も紹介!

  • Java TIPS
公開日時:   更新日時:
Java例外処理とは?例外処理の書き方も紹介!
この記事でわかること
    システム
    エンジニア
    Javaのtry-catch文はどのようなときに使うのですか。

    プロジェクト
    マネージャー
    Javaのtry-catch文は例外処理のときに使用します。

    例外処理とは?

    プログラム実行中に発生するエラーに対処するために、Javaには例外処理という機能があります。この記事ではtry-catch文の使い方を中心に、例外処理の基本的な書き方を、コード例を示しながら説明していきます。

    Javaのtry-catch構文

    Javaのtry-catch文では、try節に実行したい処理を記述し、そこで発生する例外への対処方法をcatch節に記述します。書き方は次のようになります。

    複数種類の例外が起こる可能性がある場合の書き方は、例外クラス毎にcatch節で異なる処理の記述が可能です。

    try節やcatch節の後に実行する、finally節を最後に記述できます。ここには、例外発生の有無にかかわらず実行したい終了処理を記述します。finally節の書き方は次のようになります。

    try-catch文の流れをコード例で確認しよう

    コマンドラインで指定した整数xを読み込み、”1000/x”の除算を実行するJavaプログラムを例に、例外処理を説明します。

    例外が発生するコードの例

    例外が発生する可能性のあるJavaプログラムの例です。例外処理は記述していません。

    正常実行の例として、xに20を指定した場合の出力を示します。

    上のJavaプログラムで実行時に発生するエラーには、引数が読み込めない、読み込んだ値が整数でない、xが0でゼロ除算になるという可能性があります。
    例えば、引数0を指定した場合には、次の実行時にエラーメッセージが出力され、プログラムは途中で中断されます。

    try-catchを使ったコード例

    Sample01にtry-catch構文を適用したJavaコードの書き方の例を、Sample02に示します。3種類の例外に対応するcatch節を記述しました。

    引数0を指定した場合の実行結果は、次のようになります。コードの流れを確認してみて下さい。

    検査例外では例外処理の記述が必須

    Javaの例外クラスには、検査例外と非検査例外があります。検査例外では、例外処理の記述をコンパイラがチェックするため、必ず例外処理を書く必要があります。
    Sample01の例では、例外処理を記述していませんでしたが、このコードで発生する例外は非検査例外なので、コンパイルは正常終了します。
    検査例外の例として、文字ファイルを読み込むためにFileReaderを生成するJavaプログラムを示します。

    このコードをコンパイルすると、FileNotFoundExceptionを捕捉する必要があるというエラーがでます。そこでtry-catchを入れる書き方で、次のように修正します。

    メソッドを跨ぐ例外処理の書き方

    例外が発生したときにメソッド内ではなく、それを呼び出した親メソッド内で処理する方が都合の良い場合もあります。そこで、メソッドを跨ぐ例外処理の書き方を説明します。
    上記のSample05で、FileReaderを取得する処理をメソッドに抜き出すとします。myFileReaderというメソッドに置き換えたJavaコードの書き方の例を、Sample06に示します。

    ここで、myFileReaderメソッド内にはtry-catch文がありません。コンパイルエラーを避けるため、「例外は親メソッドに投げます」ということを宣言しているのが、「throws 例外クラス」の記述です。
    test.txtというファイルがない状態で実行されると、出力は下記のようになり、main内のcatch節を実行していることがわかります。

    システム
    エンジニア
    Javaの例外クラスには検査例外と非検査例外があるのですね。

    プロジェクト
    マネージャー
    その通りです。検査例外では例外処理の記述をコンパイラがチェックするため、必ず例外処理を書くようにしましょう。

    例外処理の基本を理解しましょう

    Javaの例外処理の基本として、try-catch文の使い方を中心にコードの書き方を説明しました。try節の実行中に例外が発生すると、catch節を実行し、例外の処理をします。例外が発生したときにどんな処理が必要かを考えながら、書き方を工夫してみて下さい。

    FEnetJava・Javaコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    Java新着案件New Job