目次 | 前の項目 | 次の項目 JavaTM Image I/O API ガイド


3.8 IIOException を使用するエラー処理

これまで紹介した例では、致命的エラーの可能性を考慮に入れていませんでした。エラーの発生源はいくつか考えられます。たとえば、実際の入出力エラー (ファイルが見つからない、ファイルを読み込めない、メディアが壊れている、など)、セキュリティー違反 (アプレットからのファイル読み込みが許されていない、など)、ファイル形式の問題 (ファイルの内容が壊れている、プラグインがサポートしていないバリエーションの形式が使われている、など) のほか、API の実装やプラグインにバグがある可能性もあります。

Image I/O API では、標準の IOException クラスを独自にサブクラス化した IIOException というクラスを利用します。IIOException は、ソースファイルの解析中に遭遇したすべてのエラー (たとえば、チェックサムの誤りや、ファイル内の特定バイトの値が無効) を通知するために使用されます。これには、読み込みプラグインの内部で IOException がスローされる結果になる、実際の入出力エラーも含まれます。

IIOException には、例外の理由を記述したメッセージ (各言語への対応なし) と、その IIOException の原因となった別の Exception への参照 (そのような例外が存在する場合) が含まれています。

したがって、アプリケーションコードで適切なエラー処理を提供しようとすると、次のようなコードになります。

File f = new File("c:\images\myimage.gif");
ImageInputStream iis = null;
try {
	iis = ImageIO.createImageInputStream(f);
} catch (IIOException iioe1) {
	System.out.println("Unable to create an input stream!");
	return;
}

reader.setInput(stream);
try {
	reader.read(0, param);
} catch (IIOException iioe2) {
	System.out.println("An error occurred during reading: " +
				 iioe2.getMessage());
	Throwable t = iioe2.getCause();
	if ((t != null) && (t instanceof IOException)) {
		System.out.println("Caused by IOException: " +
		                   t.getMessage());
	}
}



目次 | 前の項目 | 次の項目
Copyright © 2001 Sun Microsystems, Inc. All Rights Reserved.