この連載では,Javaを使って普段の仕事をラクにするツールを作っていきます。今回は前回の続きです。Excelを使った,簡単な家計簿ツールを作成します。よい機会なので,同時に例外処理についても学ぶことにしましょう。

こちらからサンプルプログラムをダウンロードできます。

 皆さん,こんにちは! kikainekoです。この連載では,日々の定型的な業務をJavaで自動化してラクする方法を紹介しています。

 さて,前回はJavaからExcelファイルを扱う方法を見てきましたが,途中で誌面が尽きてしまい,ツールの作成までたどり着きませんでした。今回は,前回の内容を踏まえて「お手軽家計簿ツール」を作成してみましょう。どのようなツールだったか覚えていますか? 図1のように,セルに書かれた「光熱費=20000」のようなデータから合計金額を計算して,それをExcelに書き込むというツールでしたね。前回の内容も適宜,説明していきますので,内容をあまり覚えていないという方も安心して読み進めてください。

図1●作成する家計簿ツールのイメージ
図1●作成する家計簿ツールのイメージ

 家計簿ツールをただ作成するだけでは少し寂しい気がするので,今まであまり厳格に扱ってこなかった例外処理についても見ていきたいと思います。例外処理を押さえると,より厳格で安全なプログラミングができるようになります。ちょうどよい機会ですので,ここで例外処理のやり方を身に付けて,ワンランク上のプログラマを目指しましょう。

Excel操作に必要な三つの知識

 では,簡単に前回のおさらいをしてから例外処理について解説します。前回の記事では,Jakarta POIというツールを使用して,JavaからExcelファイルを操作する方法を解説しました。POIは,ExcelファイルやWordファイルといった,Microsoft Office形式のファイルをJavaで扱うためのライブラリです。インストールの方法などの詳細は,前回を参照してください。

 POIを利用する際に知っておくべきこととして,以下の三つを説明しました。

  • HSSFクラス群の構成
  • Excelファイルの基本的な操作方法
  • 有効範囲

 HSSF(Horrible Spread Sheet Format)クラス群は,Excelのブックやシート,セルなどを,Javaのオブジェクトとして扱えるようにするものです。前回は,これらのクラスを使用して,Excelファイルの基本的な読み込みや書き込みの手順を説明しました。また,POIを使ってExcelファイルを扱うときには,有効範囲を意識する必要があることにも触れました。この話を繰り返すと,また誌面が尽きてしまいそうなので,詳しくは実際にツールを作成しながら見ていくことにします。

例外処理を覚えてワンランク上を目指そう

 今回のような簡単な家計簿ツールであれば,おざなりな例外処理でもあまり問題はないのかもしれません。しかし,企業のシステムを構築したり,少し大きなシステムを構築したりするときには,例外処理をきちんと作り込む作業が必須になります。せっかくのチャンスなので,ツールの作成に入る前に,例外処理のやり方を覚えてしまいましょう。

 例外とは,処理の実行中に何らかの異常が発生したときに,その異常を通知してくれる機能のことをいいます。ただし,「例外が発生する」などと,例外機能を使って検知した異常そのものを“例外”と呼ぶこともよくあります。この例外機能によって異常を検知し,そのときに何らかの処理(アクション)を実行する,という一連の流れを例外処理と呼びます。

 この連載では,すでに何回か例外処理を扱っています。ファイルを扱うときに,

try{ … }
catch(Exception e){ … }

と書いてきた部分がそれに当たります。

 例外は非常に重要な機能なので,最近のプログラミング言語のほとんどに組み込まれています。ただ,もしかすると読者の皆さんのなかには,「例外ってなんかよく分からんけど,面倒なだけやないの?」と思っている方がいるかもしれません。気持ちは分からなくもないのですが,例外処理は安全なプログラミングへの第一歩になります。ぜひこれを機に,食わず嫌いをせずに例外を正しく扱えるようになるよう心がけてください。

 では一緒に見ていきましょう。例外処理は,非常に奥が深いものですが,ここでは。以下の順番で,例外処理の基本を説明していきます。

(1)例外の種類を知る
(2)例外の基本的な扱い方を知る

 ちなみにJavaのすべての例外は,Throwableというクラスを継承しています。Javaでは,例外を「投げる」と表現しますが,例外はThrowableを継承したもの,つまり「投げることができるもの」という意味になります。面白いですね!