@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

C# .Net Debug実行とExE実行の違いについて

投稿者投稿内容
もも
常連さん
会議室デビュー日: 2005/07/25
投稿数: 46
投稿日時: 2005-09-13 14:33
現在不思議な現象に悩んでおります。
例)
@ ExeApp Button1でクラスライブラリ(Class1)をnew
      ↓
A Class1のExcec関数呼出
      ↓
B Class1のExcec関数の中で、Class1のForm1をShowDialogで表示
      ↓
C Class1のForm1のイベント処理で、Exception発生!!

という処理があります。
MSVisual.net上で動作確認した際、Aのtry-catchのcatchの中で、Exceptionのエラー
メッセージを取得することができ、ExeAppは、終了しません。
しかし、プロジェクトのbin/Debug配下のExeを実行し同様に確認した場合、
Aのtry-catchのcatchの中でのExceptionのエラーが取得できず、変わりに、
続行、終了ボタンが存在するメッセージボックスが表示され、終了ボタンを
押下すると、ExeAppも終了してしまいます。

もしかしたら、とっても基本的なことかもしれませんが、
MSVisual.net上での動作をExeで実行したときに実現する方法をご教授願えませんでしょうか。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-09-13 14:37
こんにちは、じゃんぬ です。

引用:

MSVisual.net上での動作をExeで実行したときに実現する方法をご教授願えませんでしょうか。


そもそも、IDE 上から実行されているのは、生成されている EXE です。
Debug モード、Release モードでの動作の違いはあるでしょうが、
IDE 上から実行して、何かが変わるということはあまり考えられないような...

EXE の更新日時とか確認されてますか?


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-09-13 14:42
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=19220&forum=7
もも
常連さん
会議室デビュー日: 2005/07/25
投稿数: 46
投稿日時: 2005-09-13 14:44
じゃんぬねっと様
早速のお返事ありがとうございます。


EXE の更新日時とか確認されてますか?

はい。ちゃんと確認して、最新のEXEで確認しております。
VC++6.0 などでは見ない現象なので、戸惑っております・・・
もも
常連さん
会議室デビュー日: 2005/07/25
投稿数: 46
投稿日時: 2005-09-13 14:49
burton999様ありがとうございます。

同現象があるにも関わらず、検索が足りずに質問してしまい、
申し訳ありませんでした・・・・

教えていただいた質問を参考に、がんばってみたいと思います。

どうもありがとうございました。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-09-13 14:52
引用:

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=10474&forum=7&start=6


そっか、デバッガがアタッチされているのといないのとでは挙動が変わるのか。
(例外発生時)


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
もも
常連さん
会議室デビュー日: 2005/07/25
投稿数: 46
投稿日時: 2005-09-13 16:32
ももです。
表題の件は無事
Application.ThreadExceptionと、Thread.GetDomain().UnhandledException
を実装するということで解決しました。
本当にありがとうございました。

そこで、また解決できない問題がでてきてしまったのですが、
Application.ThreadExceptionの例外はthrowできるのですが、
Thread.GetDomain().UnhandledExceptionの例外はthrowできません。

Thread.GetDomain().UnhandledExceptionの中で、「throw new Exception」
と記述してみたのですが、throwされません。

throwさせるのは、どのようにしたらよいのでしょうか。
何度も何度もすみませんが、よろしくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-09-13 16:46
引用:

ももさんの書き込み (2005-09-13 16:32) より:

そこで、また解決できない問題がでてきてしまったのですが、
Application.ThreadExceptionの例外はthrowできるのですが、
Thread.GetDomain().UnhandledExceptionの例外はthrowできません。

Thread.GetDomain().UnhandledExceptionの中で、「throw new Exception」
と記述してみたのですが、throwされません。

throwさせるのは、どのようにしたらよいのでしょうか。
何度も何度もすみませんが、よろしくお願い致します。


throw できない? catch できないの間違いでは?
どこかで、明示的にキャッチしているからなのでは?
AppDomain.UnhandledException


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)