2006年5月3日

なんでもないコードでStackOverFlowException

プロパティへのgetやsetをしているだけなのに、ガシガシ再帰し続け、いつの日かStackOverFlowExceptionが投げられるコード。

public class Person
{
private string name = string.Empty;

public string Name
{
get
{
return this.Name;
}
set
{
this.Name = value;
}
}

public Person()
{
//
// TODO: コンストラクタ ロジックをここに追加してください。
//
}
}

上記のNameプロパティに、setしてもgetしても、StackOverFlowExceptionがthrowされる。
原因は、大文字小文字のスペルミス。

アホみたいなミスだが、マルチスレッドなアプリでやらかしてしまうと、発見するまでも結構な時間がかかることも。

細かい単位のテストをしっかりやってれば大丈夫なはず・・・。 でも、忘れかけたころに、またやらかしてしまう。

藤○(神)のバント失敗よりは確率が低いだろうか。

0 件のコメント: