問題タブ [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.

0 投票する
3 に答える
504 参照

c# - サードパーティのアプリケーションによって生成された未処理の例外ダイアログを排除する方法

再コンパイルできないサードパーティの実行可能ファイルを使用しています (ベンダーは利用できなくなりました)。元々は .Net 1.1 で書かれていましたが、それ以降のバージョンでも問題なく動作するようです。自分のアプリケーションから Process.Start を使用して起動します (p/invoke CreateProcess も同じ結果で試したので、関係ありません)。

残念ながら、このサードパーティ製アプリは、終了時に未処理の例外をスローするようになりました。Microsoftダイアログボックスには、「v2.0から例外がスローされました...ブロードキャストウィンドウ」のようなタイトルがあり、実行中の.Netのバージョンに関連するバージョン番号が付いています(.exe.configファイルを使用して、別の.Netをターゲットにすることができますバージョン、役に立たない)。

終了時の未処理の例外ダイアログ ボックスは実際の問題を引き起こしませんが、毎回 [OK] をクリックして閉じる必要があるユーザーにとっては厄介です。ソースコードを持っていないアプリでこのダイアログが表示されないようにする方法(おそらく構成ファイルオプション)はありますか? UnhandledException イベントにアクセスできる新しい AppDomain にロードすることを検討しましたが、ダイアログの外観を変更できる兆候はありません。誰かが例外の原因を知っているので、別の方法でこれを修正できますか?

0 投票する
1 に答える
1464 参照

c# - WindowsモバイルアプリでUnhandledExceptionを使用する際の問題

サードパーティのDLLを介して接続されたデバイスにアクセスするWindowsMo​​bileプログラムがあります。デバイスへの各呼び出しには不明な時間がかかる可能性があるため、各呼び出しにはタイムアウトプロパティが含まれています。呼び出しが戻るのに指定されたタイムアウトよりも長くかかる場合、DLLは代わりに例外をスローし、アプリは問題なくキャッチします。

私が抱えている問題は、アプリケーションを閉じることです。アプリケーションがDLLを呼び出し、タイムアウトが発生するのを待っていて、タイムアウトが発生する前にアプリケーションを閉じると、アプリケーションがロックされ、PDAを再起動する必要があります。

通常の状態では、アプリケーションが閉じる前にタイムアウトを待機することを確認できます。ただし、AppDomain.CurrentDomain.UnhandledExceptionプログラムで未処理の例外をキャッチし、イベントを使用してこの保留中のタイムアウトが発生するのを待機し、プログラムを最終的に閉じることができるようにしようとしています。

私の問題は、このイベントが十分に長く続いていないように見えることです。イベントに行を入れてMessageBox.Show("unhandled exception");、アプリケーションのメインフォームから新しい未処理の例外をスローすると、メッセージボックスが一瞬表示されますが、[OK]ボタンをクリックしないとメッセージボックスが消えます。

このイベントで私が見つけたドキュメントによると、アプリケーションが呼び出されるまでに、アプリケーションは完全にクローズにコミットされ、クローズを停止することはできませんが、イベントメソッド自体が終了しないという意味ではないと思いました。何が得られますか(それが問題だと思います)?

更新: フルウィンドウ(Vista)では、これは期待どおりに機能しApplication.ThreadExceptionますが、.NetCF2.0には存在しないイベントを使用する場合に限ります。

0 投票する
1 に答える
463 参照

.net - .Net 2.0 で未処理の例外をキャプチャします。間違ったイベントが呼び出されました

未処理の例外が .Net でどのように管理されているかについて少し調査していますが、予想外の結果が得られました。それについてどう思うかを共有したいと思います。

最初のものは非常に簡単に見ることができます。フォームを作成したのと同じスレッドで例外をスローするボタンだけで、テストを行うためにこのコードを書きました。

Visual Studio 内でコードを実行すると、予期したとおりに UnhandledException が呼び出されますが、Windows からアプリケーションを実行すると、代わりに UndhanledThreadException が呼び出されます。¿? ? ¿ ? ?

誰かがここで何が起こっているのか知っていますか?

前もって感謝します。

編集: Application.ThreadExceptionドキュメントを読んだ後、「Windowsフォームスレッド」内で例外が発生したときにApplication.ThreadExceptionが発生したように見えます(それらが何であれ、IMHOは各アプリに1つのWindowsフォームスレッドしかありません)。したがって、Application.ThreadException は、アプリケーションのフォームを作成したスレッドからスローされた例外に関連しており、その他の例外は AppDomain.CurrentDomain.UnhandledException によって処理されます。

0 投票する
2 に答える
3998 参照

.net - WCF で未処理の例外をキャッチする

WCF では、未処理の例外をキャッチするイベントまたはメソッドはありますか? またはメソッドに try/catch を配置する必要がありますか?

0 投票する
3 に答える
1800 参照

c++ - このC++コードが機能しないのはなぜですか?

エラーは

"不明なエラー"

これが主な機能です

したがって、私が知る限り、例外をキャッチする必要があります。どうすればこれを修正できますか?(google.comに接続されており、winsockが初期化されているため、例外はありません)

更新:エラーは実際にはWSAConnectの後にスローされていますが、接続に問題はないはずであり、何らかの理由で私のcatchステートメントは使用されていません。

更新2:さて、エラーをキャッチしましたが、私には役に立たない「不明なエラー」と表示されます。なぜそれはグーグルに接続しないのですか?

解決済み:ありがとう!

0 投票する
1 に答える
940 参照

c# - C# .NETMF 4.0 で未処理の例外をキャプチャする方法は?

C# .NETMF 4.0 で未処理の例外のイベント ハンドラーを登録する方法を知っている人はいますか? Google で検索しても何もわかりません。

ありがとう!

0 投票する
1 に答える
534 参照

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キャッチされない例外がある場合にブロックを実行したくないことをランタイムに通知します。

後者が利用可能であれば、確かに私の好みです。

0 投票する
3 に答える
6638 参照

c# - System.Runtime.InteropServices.COMException (0x80040154)

ターゲット マシンでアプリケーションをデプロイしようとすると、このエラーが発生します。

私はググって、DLLのいくつかを登録する必要があることを発見しました(私のアプリケーションで使用されています)

そのため、dll を System32 にコピーし、regsvr32 を実行しました。

その後、このエラーが発生しました

Interop.ShockwaveFlashObject.dll がロードされましたが、DllRegisterServer エントリ ポイントが見つかりませんでした。ファイルを登録できません

1 つの奇妙なことは、アプリケーションが 1 台のマシンだけで動作するわけではないということです。10 台の異なるマシンでテストしたところ、すべてうまくいきました。1台のマシンだけでは機能しませんでした。

誰かがこれについて私を助けてくれますか?

0 投票する
1 に答える
1482 参照

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のオプションがいくつかあるのではないかと思っていました:未処理のエラーをスローしない?

注: ビルドはまったく同じバージョンであるため、アプリケーション内のものではないと思います。したがって、それは環境内の何かに違いありません。

0 投票する
3 に答える
6808 参照

c# - .NET での UnhandledException と DispatcherUnhandledException の違い

.NETのAppDomain.UnhandledExceptionApplication.DispatcherUnhandledExceptionの違いは何ですか?

未処理の例外が発生したときに発生するイベントが必要です。私はこれら2つに出くわしましたが、それらが互いにどのように違うのかわかりません。また、解雇されない場合はありますか?