ここではJavaでの例外処理を行う方法を解説します。
例外処理とは何か?
例外処理とはプログラムで想定外のエラーが出た場合に行う処理のことです。
これを設定しておくとエラーでプログラムの動作を止めずに実行することもできます。
例外処理のやり方
例外処理は try-catch文を使って行います。
try-catch文は次のようにして使います。
try {
処理
}catch (エラー内容 e) {
エラー発生時の処理
}
処理
try {} の中の処理の中で起こったエラーについてcatch() { でどのように処理を行うか定めています。
catch(){} で指定するエラーの内容は下の画像の白く塗られている部分のことです。
ここをコピーして catchのエラー内容のところにペーストすればOKです。
スポンサーリンク
実際にプログラムを組んでみる
今回はファイルが見つからないときのエラーに対する例外処理を行うプログラムを組みます。
プログラムの内容
・読み込むファイル名はキーボードで入力する
・ファイルが見つからない場合は入力をやり直させる
ソースコード
import java.io.*;
public class Sample17 {
public static void main(String[] args) throws IOException{
判定();
}
static String 入力() throws IOException{
BufferedReader br=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("ファイルのパスを入力してください");
String path=br.readLine();
System.out.println();
return path;
}
static void 処理() throws IOException{
String path=入力();
FileReader fr=new FileReader(new File(path));
int data;
while((data=fr.read())!=-1) {
System.out.print((char)data);
}
fr.close();
}
static void 判定() throws IOException{
try {
処理();
}catch(FileNotFoundException e) {
System.out.println("ファイルを見つけられません");
判定();
}
}
}
実行結果
ファイルのパスを入力してください
tファイルを見つけられません
ファイルのパスを入力してください
tファイルを見つけられません
ファイルのパスを入力してください
text2.txtHello World!!
Thank You!
Good Bye.
各メソッドについての解説
メソッドの使い方が分からない方
入力クラス
ソースコード
static String 入力() throws IOException{
BufferedReader br=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("ファイルのパスを入力してください");
String path=br.readLine();
System.out.println();
return path;
}
このメソッドでは読み込むファイルの名前を入力させるものです。
return文で入力されたパスを返します。
処理メソッド
ソースコード
static void 処理() throws IOException{
String path=入力();
FileReader fr=new FileReader(new File(path));
int data;
while((data=fr.read())!=-1) {
System.out.print((char)data);
}
fr.close();
}
このメソッドではテキストファイルの内容を読み込んで出力しています。
このメソッドはテキストファイルの読み込みの記事で使っているプログラムSample15と同じです。
判定メソッド
ソースコード
static void 判定() throws IOException{
try {
処理();
}catch(FileNotFoundException e) {
System.out.println("ファイルを見つけられません");
判定();
}
}
ここでtry catch構文を使っています。
tryの中で処理メソッドを実行しています。
処理メソッドでファイルが見つからないエラーが出たときは「ファイルを見つけられません」と表示しもう一度入力からやり直させます。
メインメソッド
ソースコードpublic static void main(String[] args) throws IOException{
判定();
}
メインメソッドでは判定メソッドを実行させます。
今回のプログラムは判定メソッドを実行すれば他のメソッドも実行できますので、メインメソッドは判定メソッドのみ実行させるようにしています。
スポンサーリンク