047-例外処理-単純な例外処理 【新人エンジニアが最初に覚えたい100のJava文法】

ユーチューブ動画

単純な例外処理について解説します。

ソースコード

try{
	FileWriter fw = new FileWriter(FILE_PATH);
	BufferedWriter bw = new BufferedWriter(fw);
	bw.write("abc");
	bw.close();
}catch(IOException e){
	e.printStackTrace();
}

解説

単純な例外処理について解説します。

例外とは、通常の処理を継続できない状態を示します

Javaでは、ファイルの入出力やデータベース処理などで処理が継続できない可能性があるため、例外処理と呼ばれる文法を使います。

それがtry-catch構文です。

単純な例外処理では、tryのブロックに例外が発生する可能性がある処理を記述し、catchの()の中に例外の種類、catchのブロックに例外が発生したときの処理を記述します。

また例外が発生してもしなくても実行するブロックにfinallyがあります。このブロックはファイルの切断やデータベースの切断などに用いられます。

サンプルコードでは、e.printStackTraceというメソッドが呼び出されています。

例外が発生したときに、どこで例外が発生したのかその流れを出力するメソッドです。

catchブロックを空にしてしまうと、何が例外かわからなくなってしまうので、最低限の処理として、printStackTraceというメソッドを記述する場合があります。

さて、今回は、FileWriterやBufferedWriterクラスなど、聞き慣れないクラスが登場しました。これらは入出力のAPIになります。

詳しくは入出力編の動画で解説しますが、ここでは例外処理に注目して、解説します。

JavaSE のAPIドキュメントでBufferedWriterクラスのwriteメソッドを確認すると、例外IOExceptionが発生と定義されています。

このようにAPIを利用するときには、「〜のような例外が発生する」とすでに定義されています。

よって、APIを利用するときには特に例外について注意しなければいけません。

例えばこの入出力処理でtry-catchキャッチの構文をとってしまうと、ご覧のようにコンパイルエラーになります。

すべての例外でコンパイルエラーが発生するわけではありませんが、このような場合、どうしてもtry-catchキャッチの構文が必要になるのです。

統合開発環境のEclipseには便利な機能が用意されています。

範囲選択して、右クリックし、囲むからtry/catchブロックを選択すると、自動的に例外の種類を認識して、try-catchブロックを作ってくれます。

たいへん便利な機能です。

まずは、例外処理という仕組みはtry-catchブロックで実現できることを押さえてください。

次の動画もぜひ見て例外処理について深めてください。

以上、単純な例外処理について解説しました。

このサンプルコードをJavaタッチタイプゲームとして遊ぶことができます。