ハンドルされてない例外発生

例外発生の備忘録
C#で既存コントロールを継承させて、ユーザーコントロールを開発している。
メソッド内で入力不正等のエラー情報を呼び出し元クラスに知らせるために例外をスローすることで知らせている。
デバック環境ではアプリ側で例外をキャッチしているが、運用マシンでは
OS側からのエラー情報表示となり、アプリ側で例外がキャッチできない。
エラー情報で、
——————————————–
JIT デバッグ
Just-In-Time (JIT) デバッグを有効にするには、
このアプリケーション、またはコンピュータ (machine.config) の構成ファイルの
jitDebugging 値を system.windows.forms セクションで設定しなければなりません。
アプリケーションはまた、デバッグを
有効にしてコンパイルされなければなりません。
例 :
< CONFIGURATION>
<SYSTEM.WINDOWS.FORMS jitDebugging=”true” />
</CONFIGURATION>
JIT デバッグが有効なときは、このダイアログで処理するよりも、ハンドルされていない
例外はすべてコンピュータに登録された JIT デバッガに設定されなければなりません。
——————————————–
とあるので、.NETのmachine.configファイルを記載しているとおりに
修正しているがそれでもうまく動作しない。
他にもいろいろと調査しているがよくはわからない。
ググッテ調査したら同じようなエラー内容がででてきているが、根本的な
問題を解決しないといけないようだ。
それで、例外をスローしているところを修正することにした。
呼び出しクラスでエラー内容をメッセージボックスで表示するように
していたが、本意ではないがユーザークラス側でエラー表示を行いエラー処理を行った。
また、例外時に呼び出し元側でユーザークラスにフォーカスを設定
していたが、それもこの修正時にbaseを利用してフォーカス設定するように修正した。
これでなんとか、アプリ側だけで処理できるようになった。
うーん原因なんだが多分、処理を記載しているメソッドは既存クラスを
オーバーライドをしているイベント部分なので、そこで例外をスローしても
キャッチしているのが継承元クラスで、自作コントールとの間に上手に
ハンドル等の情報が伝わっていないのかなと思われる。
多分そこらあたりが問題なのだろう。
直接既存コントールクラスから継承したのも問題なのかもしれない。

7月5日 夕方から瀬長島ウォーキング。さすがに湿気があるせいかちょい息ぐるしい。
7月6日 ウォーキングした。いつもの瀬長島コース。風もあり以外にも涼しかったが、
まめに水分補給しながらあるききった。やっぱ暑いのでこまめに水分補給するのは大事なようだ。
今週も後2回なんとかのるま達成するぞぉ。

コメント

タイトルとURLをコピーしました