- - PR -
Tickイベントと例外ダイアログ
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-07-20 14:25
はじめまして。
try - catch 文の外で例外を発生させた場合の挙動について、質問します。 新しく Windows Forms のプロジェクトを作成して Timer コントロールを追加し、その Tick イベントで例外を発生させてみます。するとダイアログが表示されるのですが、左下に詳細ボタンがあり、それを押すとダイアログが下に広がってスタックトレースが表示されるタイプです。 これが、たとえば Button コントロールの Click イベントで例外を発生させた場合だと、ハンドルされていない例外が発生しました...というダイアログがでて、throw した行にカーソルが移動してくれます。 スレッドの問題?かとも思ったのですが、例外をスローするだけの throwException() というメソッドをつくり、新しいスレッドとして実行しても、後者と同じ挙動です。 new Thread(new ThreadStart(this.throwException)).Start(); Tick イベントでこのような挙動を示すのは、なぜでしょうか? catch してしまえば問題ないのですが、ちょっと気になったので……… 開発環境は VS.NET Enterprise Developer 2003 と C# です。 |
|
投稿日時: 2003-07-21 10:16
VS.NET 2002環境ですが、同様の現象ですので分かる部分だけ連絡します。
どうやら、Windowsフォームについてのみ、例外発生時にダイアログ表示する機能があるようです。 (この名前があやしい。→System.Windows.Forms.Timer.DebuggableCallback) ダイアログの最下行およびマニュアルの「WindowsフォームのJust-In-Timeデバッグの有効化」 に、JITデバッグにする方法が書かれています。 (マニュアルは、「jitDebugging」で検索してみてください。) しかしながら...machine.configに追記しても、JITデバッグにならない...!? |
1