【Java】try-catch文の基本を解説!例外・エラー処理をマスターしよう【サンプルあり】
  • facebookページ
  • twitterページ
  • 2019.09.23

    【Java】try-catch文の基本を解説!例外・エラー処理をマスターしよう【サンプルあり】

    try-catch文とは?

    try-catch文とは、Javaでtryとcatchという2つブロックを使用して記述された例外処理の文です。

    通常、実行される場合の処理をtryブロックに、例外発生時に実行される場合の処理をcatchブロックに分けて記述します。

    try-catch文の使い方・書き方

    例外処理に使うのは何となくわかりました。具体的な書き方も知りたいです。

    では、ここからはtry-catch文の具体的な使い方・書き方を見ていきましょう。

    まずは、基本的なtry-catch文の使い方・書き方をご紹介します。

    上記のサンプルコードは、sample.txtというファイルを読み込むためのプログラムです。

    tryブロックの中で、「sample.txtというファイルの読み込み」と、「読み込みが成功したことを示す文字列を表示」させます。

    catchブロックの中では、「sample.txtというファイルの読み込みができなかったことを示す文字列の表示」と、「Exceptionの例外をスロー」します。

    sample.txtファイルを読み込めなかった場合の実行結果は、以下のようになります。

    try-catch文で複数の例外をcatchする方法

    try-catch文で複数の例外処理を記述したいときは、catchブロックを複数個つくればOKです。

    以下のプログラムでは、2個のcatchブロックをつくっています。

    ファイルとクラスの例外を分けるために、「Exception」を「FileNotFoundException」と「ClassNotFoundException」に分割しました。

    Exception系のエラーについては、さまざまな種類があるので以下のサイトを参考にしてみるといいでしょう。

    https://docs.oracle.com/javame/config/cdc/ref-impl/cdc1.1.2/jsr218/ja/java/lang/class-use/Exception.html

    sample.txtファイルは読み込めたけど、クラスの読み込みができなかった場合の実行結果は、以下のようになります。

    try-catch文で必ず実行する処理は、finallyで対応する

    例外が発生してもしなくても、強制終了になるときでも、必ず実行しなければいけない処理を実行にするには、finallyブロックを使います。

    finallyブロックは、以下のようにcatchブロックの下に記述します。

    先ほどのファイルとクラスの読み込みプログラムに、finallyブロックを追加したプログラムが以下になります。

    上記のプログラムを実行した場合の実行結果は、以下のようになります。

    ポテパンダの一言メモ

    finally必ず使うべき状況

     

    • ファイル接続
    • データベース接続
    • ネットワーク接続

    などの後片付け処理は、必ずfinallyブロックに記述しましょう。

    try-catch文で例外を発生させる処理は、throwで対応する

    JVMに例外的状況を報告することを「例外を投げる」や「例外を送出する」といいます。

    例外を投げるためには、throwキーワードを使いましょう。

    ポテパンダの一言メモ

    JVMとは、正式名称「Java Virtual Machine」で、Javaのプログラムを動かすために必要なソフトウェアのことです。

    実際に、例外を投げるプログラムの例を見ていきましょう。

    ↓Main.java

    ↓Human.java

    HumanクラスのsetAge()メソッドでは、ageが負の値になるのを防ぐために、代入する前に引数の判定をします。

    引数が負の値だった場合は、IllegalArgumentExceptionインスタンスを投げ、例外的状況になったことをJVMに報告する、といった流れです。

    上記のプログラムを実行した場合の実行結果は、以下のようになります。

    try-catch文でオリジナルの例外クラスを定義する方法

    Javaでは、既存の例外クラスを継承して、オリジナルの例外クラスをつくることも可能です。

    ここでは、ひとつのオリジナルの例外処理をご紹介します。

    ↓Main.java

    ↓UnsupportedOriginalException.java

    UnsupportedOriginalExceptionの継承元になるクラスはExceptionになっています。

    上記のプログラムを実行した場合の実行結果は、以下のようになります。

    このようにさまざまな例外的状況を想定し、オリジナルの例外クラスとして作成できると、きめ細かいエラーの対処が可能になるでしょう。

    まとめ

    try-catch文の使い方・書き方についてご紹介しました。

    Javaではファイルの読み込む処理を実行する場合、例外処理の記述がないとコンパイルエラーになってしまいます。

    ぜひこの記事を参考に、例外処理の使い方をマスターしてください。



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE