問題タブ [unhandled-exception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - サードパーティのアプリケーションによって生成された未処理の例外ダイアログを排除する方法
再コンパイルできないサードパーティの実行可能ファイルを使用しています (ベンダーは利用できなくなりました)。元々は .Net 1.1 で書かれていましたが、それ以降のバージョンでも問題なく動作するようです。自分のアプリケーションから Process.Start を使用して起動します (p/invoke CreateProcess も同じ結果で試したので、関係ありません)。
残念ながら、このサードパーティ製アプリは、終了時に未処理の例外をスローするようになりました。Microsoftダイアログボックスには、「v2.0から例外がスローされました...ブロードキャストウィンドウ」のようなタイトルがあり、実行中の.Netのバージョンに関連するバージョン番号が付いています(.exe.configファイルを使用して、別の.Netをターゲットにすることができますバージョン、役に立たない)。
終了時の未処理の例外ダイアログ ボックスは実際の問題を引き起こしませんが、毎回 [OK] をクリックして閉じる必要があるユーザーにとっては厄介です。ソースコードを持っていないアプリでこのダイアログが表示されないようにする方法(おそらく構成ファイルオプション)はありますか? UnhandledException イベントにアクセスできる新しい AppDomain にロードすることを検討しましたが、ダイアログの外観を変更できる兆候はありません。誰かが例外の原因を知っているので、別の方法でこれを修正できますか?
c# - WindowsモバイルアプリでUnhandledExceptionを使用する際の問題
サードパーティのDLLを介して接続されたデバイスにアクセスするWindowsMobileプログラムがあります。デバイスへの各呼び出しには不明な時間がかかる可能性があるため、各呼び出しにはタイムアウトプロパティが含まれています。呼び出しが戻るのに指定されたタイムアウトよりも長くかかる場合、DLLは代わりに例外をスローし、アプリは問題なくキャッチします。
私が抱えている問題は、アプリケーションを閉じることです。アプリケーションがDLLを呼び出し、タイムアウトが発生するのを待っていて、タイムアウトが発生する前にアプリケーションを閉じると、アプリケーションがロックされ、PDAを再起動する必要があります。
通常の状態では、アプリケーションが閉じる前にタイムアウトを待機することを確認できます。ただし、AppDomain.CurrentDomain.UnhandledException
プログラムで未処理の例外をキャッチし、イベントを使用してこの保留中のタイムアウトが発生するのを待機し、プログラムを最終的に閉じることができるようにしようとしています。
私の問題は、このイベントが十分に長く続いていないように見えることです。イベントに行を入れてMessageBox.Show("unhandled exception");
、アプリケーションのメインフォームから新しい未処理の例外をスローすると、メッセージボックスが一瞬表示されますが、[OK]ボタンをクリックしないとメッセージボックスが消えます。
このイベントで私が見つけたドキュメントによると、アプリケーションが呼び出されるまでに、アプリケーションは完全にクローズにコミットされ、クローズを停止することはできませんが、イベントメソッド自体が終了しないという意味ではないと思いました。何が得られますか(それが問題だと思います)?
更新: フルウィンドウ(Vista)では、これは期待どおりに機能しApplication.ThreadException
ますが、.NetCF2.0には存在しないイベントを使用する場合に限ります。
.net - .Net 2.0 で未処理の例外をキャプチャします。間違ったイベントが呼び出されました
未処理の例外が .Net でどのように管理されているかについて少し調査していますが、予想外の結果が得られました。それについてどう思うかを共有したいと思います。
最初のものは非常に簡単に見ることができます。フォームを作成したのと同じスレッドで例外をスローするボタンだけで、テストを行うためにこのコードを書きました。
Visual Studio 内でコードを実行すると、予期したとおりに UnhandledException が呼び出されますが、Windows からアプリケーションを実行すると、代わりに UndhanledThreadException が呼び出されます。¿? ? ¿ ? ?
誰かがここで何が起こっているのか知っていますか?
前もって感謝します。
編集: Application.ThreadExceptionドキュメントを読んだ後、「Windowsフォームスレッド」内で例外が発生したときにApplication.ThreadExceptionが発生したように見えます(それらが何であれ、IMHOは各アプリに1つのWindowsフォームスレッドしかありません)。したがって、Application.ThreadException は、アプリケーションのフォームを作成したスレッドからスローされた例外に関連しており、その他の例外は AppDomain.CurrentDomain.UnhandledException によって処理されます。
.net - WCF で未処理の例外をキャッチする
WCF では、未処理の例外をキャッチするイベントまたはメソッドはありますか? またはメソッドに try/catch を配置する必要がありますか?
c++ - このC++コードが機能しないのはなぜですか?
エラーは
"不明なエラー"
これが主な機能です
したがって、私が知る限り、例外をキャッチする必要があります。どうすればこれを修正できますか?(google.comに接続されており、winsockが初期化されているため、例外はありません)
更新:エラーは実際にはWSAConnectの後にスローされていますが、接続に問題はないはずであり、何らかの理由で私のcatchステートメントは使用されていません。
更新2:さて、エラーをキャッチしましたが、私には役に立たない「不明なエラー」と表示されます。なぜそれはグーグルに接続しないのですか?
解決済み:ありがとう!
c# - C# .NETMF 4.0 で未処理の例外をキャプチャする方法は?
C# .NETMF 4.0 で未処理の例外のイベント ハンドラーを登録する方法を知っている人はいますか? Google で検索しても何もわかりません。
ありがとう!
java - CLRのUnhandledExceptionイベントに相当するJava
CLR(C#、VB.NETなどで使用されるランタイム)には、未処理の例外がスローされたときに呼び出されるコールバックを登録する方法があります。
Javaに似たようなものはありますか?
おそらく、単一のメソッドで何らかのインターフェイスを実装するオブジェクトを渡すAPIになると思います。例外がスローcatch
され、スタックに一致するものがない場合、ランタイムは登録されたオブジェクトのメソッドを呼び出し、例外オブジェクトが渡されます。
これにより、プログラマーはスタックトレースを保存できます。また、未処理の例外に対してのみ実行されるブロックSystem.exit
を停止するために、を呼び出すこともできます。finally
アップデート1。
これを説明するために、C#のサンプルを次に示します。
重要なのは、私に電話をかけることで、ブロックの実行Environment.FailFast(null)
を停止できるということです。finally
案の定、Windows7で実行されているNET3.5および4.0では、出力に「finallyisexecuting」という文字列が表示されません。FailFast
しかし、呼び出しをコメントアウトすると、出力にその文字列が表示されます。
アップデート2。
これまでの回答に基づいて、これをJavaで再現する試みを示します。
これをJava6(1.6.0_18)で実行すると、次のように表示されます。
- ついに実行中
- 捕捉されなかった例外
つまり、JREはfinally
、キャッチされない例外ハンドラーを実行する前にブロックを実行します。
これが重要である理由の背景については、より複雑な例を次に示します。
したがって、重大なバグがあり、プログラムを停止してスタックトレースをログに記録したいと思います。しかし、これを行う前に、スタックのどこかに中間finally
ブロックがあり(実際のプログラムでは、別のメソッドになります)、ファイルシステムにアクセスしようとします。何かがおかしい。次に、スタックの少し上に、IOException
私にとって大したことではないので、私がキャッチを持っていると仮定します。
言うまでもなく、出力は次のとおりです。
- ついに実行中
- IOExceptionをキャッチしました
- プログラムは何も起こらなかったかのように実行し続けます...
だから今、私は偶然に深刻なバグが私から隠されている状況を作り出しました。
2つの解決策があります:
- どういうわけか、ブロックが安全かどうかをローカルで判断できないため、
finally
ブロックがスローされないようにします。通常の実行パスをスローしても問題がないため、これは残念です。つまり、前の例外に応答して実行されていない場合です。 finally
キャッチされない例外がある場合にブロックを実行したくないことをランタイムに通知します。
後者が利用可能であれば、確かに私の好みです。
c# - System.Runtime.InteropServices.COMException (0x80040154)
ターゲット マシンでアプリケーションをデプロイしようとすると、このエラーが発生します。
私はググって、DLLのいくつかを登録する必要があることを発見しました(私のアプリケーションで使用されています)
そのため、dll を System32 にコピーし、regsvr32 を実行しました。
その後、このエラーが発生しました
Interop.ShockwaveFlashObject.dll がロードされましたが、DllRegisterServer エントリ ポイントが見つかりませんでした。ファイルを登録できません
1 つの奇妙なことは、アプリケーションが 1 台のマシンだけで動作するわけではないということです。10 台の異なるマシンでテストしたところ、すべてうまくいきました。1台のマシンだけでは機能しませんでした。
誰かがこれについて私を助けてくれますか?
c# - Windows フォームの未処理のエラー ポップアップ メッセージ
私は Windows フォーム アプリケーション (.NET C# 3.5) を持っています... エラーがスローされています.. しかし、2 つのシナリオがあります。
クライアント: クライアント側.. エラーは log.txt ファイルに記録されます.. そして、エラーポップアップメッセージが表示されます
このダイアログ ボックスの代わりに Just-In-Time (JIT) デバッグを呼び出す方法の詳細については、このメッセージの最後を参照してください。
************** 例外テキスト ************** System.Threading.ThreadAbortException: スレッドが中止されました。System.Windows.Forms.Internal.IntUnsafeNativeMethods.IntSaveDC (HandleRef hDC) で
...
ローカル: ローカル コンピューターで...アプリケーションがエラーをスローすると、log.txt ファイルに記録されます..しかし、ポップアップ メッセージは表示されません...
そう..私は、Windowsのオプションがいくつかあるのではないかと思っていました:未処理のエラーをスローしない?
注: ビルドはまったく同じバージョンであるため、アプリケーション内のものではないと思います。したがって、それは環境内の何かに違いありません。
c# - .NET での UnhandledException と DispatcherUnhandledException の違い
.NETのAppDomain.UnhandledExceptionとApplication.DispatcherUnhandledExceptionの違いは何ですか?
未処理の例外が発生したときに発生するイベントが必要です。私はこれら2つに出くわしましたが、それらが互いにどのように違うのかわかりません。また、解雇されない場合はありますか?