Form.Loadイベント内での例外の謎
Loadイベントから呼ばれる処理がうまくいっていない原因をVisual Studioで調査中のこと。
this.Load += new System.EventHandler(this.AAA_Load);
private void AAA_Load(object sender, EventArgs e) { Top = Parent.Top + Parent.Height;
Top = 〜の行でParentがnullな為にSystem.NullReferenceExceptionが発生しているが、そこで_Load処理が中止され、エラーも無く、何もなかった様にアプリは動作し続けていた。普通ならVisual Studioのデバッグ動作が停止して、例外の知らせがあるはずだった。
そこで、Programクラスに
static void Main() { Application.ThreadException += Application_ThreadException;
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) { throw new NotImplementedException(); }
これでApplication_ThreadExceptionが動作して、NotImplementedExceptionが発生するはずだ。
なのに、今度はAAA_Load(本来起こるハズの場所)でNullReferenceExceptionが発生した。