【初心者向けにわかりやすく】Javaによるtry-catchの基本

try-catch
  • このエントリーをはてなブックマークに追加
  • Pocket

エラー処理はプログラミングにおいて重要だ。

しかし、すべての予想されるエラーをif文で繋げて書くと、非常に長くなってしまい見にくいコードになってしまう。かと言って省略すれば深刻なバグを引き起こす可能性がある

そんなときに使うのがtry catchだ。このページではJavaの例外処理try catch文を解説する。

Javaによるtry catchの基本

Javaの例外処理の書き方

Javaの例外処理はtry catch文で記述する。JavaはC++から構文を引き継いでいるため、例外処理もC++のtry catch文を踏襲している。try catch文による例外処理は多くのプログラミング言語でも利用される構文なので、必ず覚えておくべきだ。

次のように書く。

try {
  正常終了;
} catch(例外クラス 変数名) {
  例外処理;
}

基本的な構文の流れとしては、例外が起きる可能性のある処理をtryブロック内に書き、例外が起きた場合の処理をcatchブロック内に書く。

例外処理のサンプルプログラム

ある特定のファイルを読み込むという簡単なプログラムを例にみてみよう。

Javaに限らずプログラムの処理においてファイルを読み込む処理というのはよく使う。読み込もうとしたファイルが存在しない場合、プログラムは続きの処理ができなくなってしまうため停止してしまう。

それを防ぐためにも例外処理が必要になる。

ちなみにJavaではファイルを読み込む処理を行う際には、例外処理の記述がないとコンパイルエラーになる。

「sample.text」というファイルを読み込む処理でみてみよう。「sample.text」ファイルがない場合は例外処理が発生する。

try catchは上記サンプルのように、①のtryブロックで囲まれた中に行いたい処理を書き、①の処理で例外が発生した場合、④のcatchブロックで記述された例外処理を行う。

②の下記の1文はJavaのFileReaderクラスで「sample.txt」ファイルを読み込む処理だ。

FileReader r = new FileReader(“sample.txt”);

③の上記のcatchの1文はどのような例外をcatchするかを定義している。

「FileNotFoundException」はファイルが存在しなかった場合の例外をcatchするクラスの名前であり、「e」は変数名だ。

catch (FileNotFoundException e)

サンプルプログラムのtestAというメソッドを実行した場合は、以下のような実行結果が考えられる。

「sample.txt」ファイルが存在した場合

  • 「ファイルを読み込みました」が出力される。

「sample.txt」ファイルが存在しなかった場合

  • 「ファイルが存在しませんでした」が出力される。

複数のcatchブロック

catchブロックは複数記述することもできる。

先ほどのファイルを読み込むサンプルプログラムに「sampleClass」というクラスを読み込む処理を追加して、最後にcatchブロックを一つ追加した。

読み込もうとしたクラスが存在しなかった場合、例外が発生する。

①の下記の1文は「sampleClass」というクラスを読み込んでいる処理だ。

Class c = Class.forName(“sampleClass”);

②の1文は「ClassNotFoundException」はクラスが存在しなかった場合の例外をcatchするクラスの名前であり、「e」は変数名である。

catch (ClassNotFoundException e)

③の一文の「FileNotFoundException」が「ClassNotFoundException」になっている。

これは②とcatchする例外が違うことを意味している。発生する例外は様々あり、例外ごとに適切な処理を記述する必要がある。

サンプルプログラムの「sample.txt」ファイルが存在しなかった場合は、②の例外処理が実行され、「sampleClass」クラスが存在しなかった場合は③の例外処理が実行される。

サンプルプログラムのtestBというメソッドを実行した場合は、以下のような実行結果が考えられる。

「sample.txt」ファイルが存在しなかった場合

  • 「ファイルが存在しませんでした」が出力される。

「sample.txt」ファイルが存在した場合かつ「sampleClass」クラスが存在する場合

  • 「ファイルを読み込みました」が出力される。
  • 「クラスを読み込みました」が出力される。

「sample.txt」ファイルが存在した場合かつ「sampleClass」クラスが存在しない場合

  • 「ファイルを読み込みました」が出力される。
  • 「クラスが存在しませんでした」が出力される。

まとめ

このページではJavaのtry-catchについてご紹介した。Javaプログラマーであれば、100%書くことになるので、必ず理解をしておこう。

エラーが起こる0で割るプログラムなどを実際に打ってみて、自分の手でも確認してみていただきたい。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リスキルテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメント

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する