収入UPの転職を目指す方へ

【Java入門】try・catch・ finally・throws...例外処理ってどんなもの?

  • 2018/02/21
java-exception-handling-try-catch-finally-throws.jpg

問題なくコンパイルできたプログラムであっても、実行中にエラーが発生することがあります。このような場合に本来の処理を中断して別の処理を実行することを例外処理といいます。今回は、Javaプログラムの安全性を高める上で欠かせない仕組みである「例外処理」についてご紹介します。

IT業界まるわかりガイドは、日本初Web専門スクールのインターネット・アカデミーが運営する業界情報メディアです。最新の業界情報を、初心者にも分かりやすくご紹介しています。

目次

「例外」とは

「例外」とは

Javaプログラムは、実行前にコンパイルを行うことによって、文法上のエラー(コンパイルエラー)を取り除くことができます。しかし、問題なくコンパイルできたとしても、プログラムの実行途中でエラーが起きてしまう(実行時エラー、もしくはランタイムエラーという)場合があります。

このようなプログラム実行中に発生する想定外の事象を「例外」、例外発生に備えて記述しておく処理を「例外処理」と呼びます。例外が発生することは、「例外が投げられる」「例外がスローされる」ともいいます。

例外が起きる代表的なケースに、ゼロ除算(0による割り算)があります。以下のプログラムは、実行しても異常終了します。

【プログラム例】

public static void main(String[] args){
   int a;
   int b = 100;
   int c = 0;
   a = b/c;
}

検査例外(Exception)

検査例外(Exception)

例外の中でも、「参照するファイルが存在しない」「データベースにアクセスできない」など、開発者側では防ぐことのできないものが検査例外です。
プログラムに検査例外の処理を記述していない場合、コンパイルエラーになります。

検査例外の処理は、try、catch、finallyを用いて、以下のように記述されます。

【try-catch-finally文の書式】

try {
  例外が発生する可能性のある処理
} catch(例外クラス名 変数名) {
  例外発生時の処理
} finally {
  最後に必ず実行される処理
}

複数のメソッド内に同じ例外処理を記述したい場面も出てくるでしょう。しかし、毎回try-catch-finally文だけで記述すると、コードの重複が起こり、プログラムの可読性(プログラムの読みやすさ)が低下します。
このようなときは、例外が発生する可能性のあるメソッドをthrowsによって明示し、別のクラスにtry-catch-finally文を記述する(例外処理を別のクラスで定義する)方法が有効です。

throwsで明示したメソッドにより例外が発生した場合、メソッドの呼び出し元に例外が投げられます。

【throws文の書式】

例外が発生する可能性のあるメソッド名 (引数) throws 例外クラス名{
  処理
}

その他の例外

その他の例外

検査例外の他にも、実行時例外、エラーと呼ばれる例外があります。これらは例外処理を記述していなくてもコンパイルエラーにはなりません。

実行時例外(RuntimeException)

null(定義されていない値)オブジェクトにアクセスしたときや、配列作成時に定義した要素の範囲外を指定したときが実行時例外に該当します。実行時例外は非検査例外とも呼ばれます。

エラー(Error)

エラーはJava仮想マシン(JVM)が実行不能になるなど、システム異常が発生したときが該当します。代表的なものとして、VirtualMachineErrorがあります。

おわりに

今回はtry、catch、finally、throwsを用いた例外処理について説明しました。個人による小規模なプログラム開発であれば、エラーの発生が大きな問題に発展する可能性は低いです。しかし、大規模な業務システムやWebサービスになると、エラーが及ぼす影響はとても甚大なものになります。適切な例外処理の方法をマスターして、信頼性の高いプログラムを書けるようにしましょう。

例外処理はJavaの中でも重要なテーマであるため、しっかりと理解して実践的に使えるようにしておくことが必要です。インターネット・アカデミーでは、開発現場の事情まで把握した講師による実践的な指導を受けることができます。将来IT業界やWeb業界で働くことを希望される方は、インターネット・アカデミーでJava講座を受講してみませんか

関連記事

Java入門:プログラミングの必須知識!まず押さえたい基本用語集

関連講座

Java講座 ITエンジニア総合コース

Web業界への就転職・キャリアアップを成功させたいと考えている方へ
1995年開校、日本初のWebデザイン・プログラミングスクールインターネット・アカデミー

自分にぴったりのコースが見つかる

プログラミングスクールのインターネット・アカデミーでは、Web業界を目指すあらゆる方にお応えすべく、多彩なコースをご用意しています。

Webデザインを学びたい方

プログラミングを学びたい方

自分のペースとスタイルで学べる

毎回好きな受講形式を選んで学習することができるので、働きながらじっくり通いたい方も短期間での就職を目指す方も自分の都合に合わせて、スケジュールを組むことができます。

  • ライブ授業

    現役のプロインストラクター
    と仲間と学ぶメリット

    ライブ授業
  • マンツーマン授業

    インストラクターと
    1対1という贅沢

    マンツーマン授業
  • オンデマンド授業

    いつでも学びたいことを
    学べる

    オンデマンド授業

自分に適した学習方法を探す

インターネット・アカデミーでは、無料体験レッスンを毎日開催しています。デザインやプログラミングの体験ができるのはもちろん、実際の授業に参加したり、就職や転職のご相談、通学スケジュールのご相談なども承っております。

  • ご要望をお伺い

    ご要望をお伺い

    まずはお客様のご要望をお伺いし、お一人おひとりの目的や悩みに最適な内容にカスタマイズ。お客様専用の内容で当日ご案内いたします。

  • カウンセリング

    カウンセリング

    就職や転職、在宅で働きたいなど、お客様の希望を叶えるために専任のスタッフが最適な学習プランをご提案。現在の仕事のご相談なども承ります。

  • 体験レッスン

    体験レッスン

    「自分に向いている分野は?」「自分にできる?」そんな疑問を解決するレッスンを無料で体験。デザインもプログラミングもお試しいただけます。

無料体験レッスン・個別相談のご予約

当日ご希望の方やお急ぎの方は、フリーダイヤルにてご予約いただけます。

0120-746-555 フリーダイヤル受付時間(平日・土日) 10時-21時 オンライン予約

IT研修・人材育成のご相談を無料で承っております
法人専用社員研修、内定者・新人研修のご予約

インターネット・アカデミーでは、
あらゆるニーズに合わせた研修カリキュラムを取り揃えています。

「自社に最適な研修プランを相談したい」「研修費用の相談をしたい」「助成金を申請したい」など、お電話またはお問い合わせフォームよりお気軽にご連絡ください。

03-3341-3781 受付時間(平日・土日) 10時-21時 法人専用 お問い合わせフォーム