Top > プログラミング > .NET Tips> 捕捉されなかった例外がスローされたことを知る

捕捉されなかった例外がスローされたことを知る」への評価、コメント

評価

良い / 悪い = 23 / 5 (「良い」の割合 = 0.821 , 人気度 = 1.188

評価する

コメント一覧


通常のコメント
匿名 2020/09/3 (Thu) 20:58:35
「Windowsフォームアプリケーションで捕捉されなかったすべての例外を調べるには、基本的には、ThreadExceptionイベントとUnhandledExceptionイベントの両方を使います。」
とありますが、UnhandledExceptionだけではだめなのですか?
UnhandledExceptionのところでUIスレッド以外で発生した例外も捕まるとあるので、
UnhandledExceptionだけでも良さそうなのですが、
UIスレッドで発生した分はThreadExceptionを使用する理由がいまいちわかりませんでした。

通常のコメント
匿名 2018/09/21 (Fri) 02:23:57
VB.NETのアプリケーションフレームワーク機能による
MyApplication.UnhandledExceptionイベントは、
デバッガーに接続しているときには発生しないという制約があるようです。
なおApplication.ThreadExceptionイベントには、このような制約はないように見えます。

WindowsFormsApplicationBase.UnhandledException Event
https://docs.microsoft.com/ja-jp/dotnet/api/microsoft.visualbasic.applicationservices.windowsformsapplicationbase.unhandledexception?redirectedfrom=MSDN&view=netframework-4.7.2

通常のコメント
管理人 2018/05/16 (Wed) 02:00:36
> Frameworkのバージョン4系のVB.NETで、UnhandledExceptionハンドラ内でApplication.Exitを使用してますが、別にダイアログは表示されませんよ

試してみましたが、ダイアログは表示されました。新規に「Windowsフォームアプリケーション」のプロジェクトを作成し、「UIスレッドの例外をUnhandledExceptionイベントで捕捉する」のコードを基に、「Environment.Exit(1)」を「Application.Exit()」にして試してみてください。

通常のコメント
匿名 2018/05/15 (Tue) 15:48:25
Frameworkのバージョン4系のVB.NETで、UnhandledExceptionハンドラ内でApplication.Exitを使用してますが、別にダイアログは表示されませんよ
Application.ExitはApplication.Runを終了させると同時に、すべてのフォームにClosingを発生させるだけのものです
これを使って動作停止ダイアログが表示されるのは、作ってるアプリケーションがそういう構造になってしまっているだけでしょう

通常のコメント
管理人 2013/06/22 (Sat) 23:01:22
> Application.Exit(); はメッセージループの終了なので終了できない時もあります。
> Environment.Exit(int exitCode); を使ったほうがいいです。

VB.NETのMy.Application.UnhandledExceptionもApplication.Exitを使っているようですので、Application.ThreadExceptionの場合はこのままの方がよさそうです。しかし、UnhandledExceptionの場合は、Application.Exitだと「動作を停止した」というダイアログが表示されてしまうため、これを避けるためにEnvironment.Exitで終了させた方がよいかもしれません。ご提案、ありがとうございました。

通常のコメント
ちとく 2013/03/14 (Thu) 12:59:09
Application.Exit(); はメッセージループの終了なので終了できない時もあります。
Environment.Exit(int exitCode); を使ったほうがいいです。

評価の理由
匿名 2012/11/1 (Thu) 16:57:09
評価:悪い
対応が遅い

通常のコメント
管理人 2010/07/22 (Thu) 00:59:15
> 「Console apps and AppDomain.CurrentDomain.UnhandledException」としてあがっているURLが変わっているようです

了解しました。修正しておきます。ご報告ありがとうございました。

通常のコメント
匿名 2010/07/21 (Wed) 15:47:10
「Console apps and AppDomain.CurrentDomain.UnhandledException」としてあがっているURLが変わっているようです
http://www.codinghorror.com/blog/archives/000201.html

http://www.codinghorror.com/blog/2005/02/console-apps-and-appdomaincurrentdomainunhandledexception.html

評価の理由
匿名 2008/11/21 (Fri) 18:10:48
評価:悪い
Application.Exit()をつかいません

コメントの投稿

[説明]