初心者のためのC#プログラミング本格入門106 - アプリケーションの種類を限定しない問題報告手段を覚えよう
アプリケーションは大別すると、コンソール(CUI)とGUI(WPF、Windows Formsなど)があります。プログラミングをする際には、極力アプリケーションの種類を特定しない方が望ましいです。何故ならば、アプリケーションの種類ごとにプログラムを書くのは煩雑かつ管理が大変だからです。そこで問題になってくるのは、エラーの通知方法です。
前回サンプルで示したように、コンソールに特化したエラー通知をしてしまうと、WPFやWindows Formsといった他の種類のプログラムで再利用できなくなります。本来、Listのようなデータを管理するオブジェクトは、どの種類のアプリケーションでも使えるはずです。従って、アプリケーションの種類を特定しないエラーの通知方法が必要となります。
幸いC#にはアプリケーションの種類に関係なく、エラーを通知する文法が存在します。名前は例外処理です。例外処理という方法を使用すると、アプリケーションの種類を問わないエラーの通知方法が得られます。早速、サンプルに反映してみましょう。
//SimpleList_Enumerator.cs
//※関係のないプログラムは省略しています。
partial class SimpleList :
System.Collections.Generic.IEnumerable<int>
{
public bool MoveNext()
{
if ( this.initCount != this.owner.updateCount ) {
string msg = "取得後に変更されました。";
throw new System.InvalidOperationException( msg );
}
++this.readIndex;
return this.data.Length > this.readIndex;
}
}
throwキーワードを使用すると、例外処理と呼ばれる方式でエラーを通知できます。サンプルではnewキーワードを併用していますが、必ずしも併用する必要はありません。あくまでもthrowがキーワードです注意してください。これで、アプリケーションの種類に関係なくエラーを通知することができました。しかしながら、このままではプログラムがストップしてしまいます。プログラムがストップしないようにするには、専用の文法を使用します。続く...