JavaSilver_躓いた問題をまとめてみた② 例外処理その1
こんにちは。のわです。
今回は現在勉強中のJavaSilverから
例外についてまとめたいと思います。
例外とはなにか
一言でいうなら『プログラム実行中に想定外の状況になる』という現象です。
そして、例外処理とは
『例外に対する対策』をすることです。
早速コードを見てみましょう。
import java.io.*; public class Main { public static void main(String[] args) { try { FileReader fw = new FileReader("date.txt"); } catch (IOException e) { System.out.println("エラーが発生しました"); System.out.println(e); } } }
例外の基本文法は「try-catch」文です。
try文が通常処理
catch文が例外発生時の処理内容になります。
上記コードの解説です。
FileReaderを使用し、date.txtのファイルを読み出そうとしています。
このコード自体は問題がないのでコンパイルエラーとはなりません。
例外が発生するのは実行時です。
プログラムを実行した際、try文の中を処理しします。
プログラムはdate.txtを読み出します。
その時、date.txtが存在しないと例外発生となります。
(java.io.FileNotFoundException: date.txt (No such file or directory))
上記例外が出た際に、プログラムはcatch文に移行します。
catch文の構文は以下のとおりです。
catch(例外クラス 変数名)
変数名には例外内容が入ります。(今回だとFileNotFoundException)
その後は任意の処理内容を記載します。
では、次に上記コードに文を追加しましょう。
import java.io.*; public class Main { public static void main(String[] args) { try { FileReader fw = new FileReader("date.txt"); } catch (IOException e) { System.out.println("エラーが発生しました"); System.out.println(e); } finally { System.out.println("処理を終了します"); } } }
finallyという文が追加されました。
finallyは「必ず処理される文」です。
try文で例外が発生するとcatch文に移行するのは先程解説いたしました。
catch文で処理されたあと、プログラムは強制終了となるため
後片付けの処理ができなくなります。
この時に使用するのがfinally文です。
finally文は必ず処理される内容を記述します。
必ず処理されるので
・try文がうまく行った場合
・try文で例外が発生した場合
の二段階の対応が可能になります。
今回は例外処理についてまとめてみました。
・例外とは「プログラム実行中に想定外の事態が発生した状況のこと」
・例外を処理する文法は「try-catch」文
・必ず処理させたい内容は「finally」文に記述
次回は例外処理の具体的な内容をまとめたいと思います!
今回も最後まで読んでいただきありがとうございました!