森理 麟(moririring)のプログラマブログ

ゲームプログラマ森理 麟がのプログラムの話題を中心に書くブログです。

C#アプリの作り方入門〜「きほん」の「ほ」〜 その17 エラー処理に注意せよ

Error 404

バイナリファイルにご用心

前回全てのファイルを読み込めるようにしました。

これによりtxtではないファイルを読み込んでしまう可能性が出ました。

つまり、バイナリファイルをロードする危険性です。

StreamReaderでバイナリファイルを処理するとエラーになってしまいます。

テキストと言う名のバイナリもある

これでは全てのファイルを読めるようにするのはデメリットがあると思うかも知れません。

しかし全てのファイルが読めないとしても実質的には一緒なんです。

txtという拡張子でもバイナリファイルのものがあります。

その場合、結局txtをロードしてもStreamReaderでエラーが出てしまいます。

そんな時にはusing

ではどうすれば良いのか?その解決方法はエラー処理を入れることです。

エラー処理はプログラム的に言うと例外処理を使います。

一番簡単な例外処理はusingを使うことです。

EffectiveC#にもそう書いてあります。

//これだけで何があっても開放処理が呼ばれる
using(sr = new System.IO.StreamReader(openFileDialog1.FileName))
{
}

エラー処理は奥が深い

これで、仮にバイナリーデータを読み込んでもストップすることはなくなりました。

ファイル操作は処理の中でもエラーが起きやすい方だと思います。

usingさえ使っておけば、少なくともファイルの不正ロックなどは起きません。

ただ、エラー処理は奥が深く、これだけで全て対応という訳では全くありません。