問題タブ [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++ - .soから例外をスローする関数を呼び出しているときにクラッシュしないようにする方法
これが私がしたことです、私はこの例外を優雅に処理したいと思います:
code_snippet:my.cpp
code_snippet:exception.c
上記の2つのスニペットから、次のコマンドを使用してshared_objectlibexception.soを作成しました。
次に、main.cpp code_snippet:main.cppから関数so_mainを呼び出しました。
}
最終コマンド:g ++ -g -ldl -o main.exe src / main.cpp -L lib / -lexception
main.exeを実行するとクラッシュします。誰かが問題の場所とこのクラッシュの発生を回避する方法を検出するのを手伝ってもらえますか(一部の.SOがextern c ++関数を呼び出すアーキテクチャがすでにあるため、変更できません。main.cppでのみ処理します) )。
.net - 子AppDomainsの未処理の例外が、メインプロセスのクラッシュを防ぐことができますか?
アプリドメインを使用して.NetFramework4.0を使用してプラグインを分離する小さなプラグインライブラリを作成しています。したがって、各プラグインに含まれるコードは私の制御不能です。プラグインの1つで未処理の例外が発生した場合、結果は一種の混合バッグであることがわかりました。以下のとおりです。
未処理の例外がプラグインのメインスレッドでスローされると、プラグインのexecuteメソッドを呼び出すメインのプラグイン可能なアプリがそれをキャッチしてクリーンに処理できます。そこに問題はありません。でも、
プラグインがプラグインのExecuteメソッドでWinFormsベースのアプリのメッセージループを開始し、未処理の例外がWinFormアプリケーション(つまりフォーム)でスローされた場合、プラグイン可能なアプリは、VisualStudioデバッガー内から実行されている場合にのみ例外をキャッチできます。そうしないと(VSの外部で呼び出された場合)、メインのプラグイン可能なアプリがプラグインとともにクラッシュします。
未処理の例外がプラグインのExecuteメソッドによって生成された別のスレッドでスローされた場合、プラグイン可能なアプリは例外をキャッチする可能性がなく、クラッシュします。
以下のリンクで、この動作をシミュレートするための簡単なVS2010プロジェクトを作成しました。 http://www.mediafire.com/file/1af3q7tzl68cx1p/PluginExceptionTest.zip
その中で、プラガブルアプリのメインメソッドは次のようになります
これはプラグインプロジェクトのコードです。上記のプラガブルアプリプロジェクトのPluginBaseクラスから継承します。
最後に、これはプラグインのフォームからのコードです
上記の2つのシナリオ(1と2)が原因でメインプロセスが終了しないようにするにはどうすればよいですか?
前もって感謝します。
access-violation - fstreamを使用してバイナリファイルに書き込み中の一貫した「アクセス違反の読み取り場所」
一部の入力データの FFT を取得するためにコードを適応させようとしています。変換を行うと、すべてがうまくいきます。トランスフォームをバイナリ ファイルに書き込もうとすると、次のような問題が発生します。
FFT.exe の 0x68d0ca24 (msvcr100d.dll) で未処理の例外: 0xC0000005: アクセス違反の読み取り場所 0x00161000。
最も奇妙なことは、プログラムをコンパイルして実行するたびに発生しないことです。約 3 回ごとに正常に実行され、データがファイルに保存されます。
これが質問にコードを含める適切な方法でない場合はお詫びします (最初の投稿はこちら)。
例外は、streambuf の 202 行目で一貫して発生しているようです (これが役立つのでしょうか?)。
本当に私を悩ませているのは、一見ランダムに発生しているように見えることです。この問題に遭遇したのはこれが初めてなので、どこからバグを探し始めればよいのかわからない. この例外に関する他の投稿に基づいて、ポインターの使用に問題があるようです?
解決策や実行中のバグを処理する方法についての助けをいただければ幸いです。
ありがとう、グレッグ
c# - なぜこの状況で最終的に実行されないのですか?
次のコードがあります。
しかし、これを実行してもExecute Dispose!
メッセージが出力されません。これはなぜですか?
アップデート:
コードを次のように変更した場合:
最初にメッセージを出力してからクラッシュします。
私が考えているのは、アプリが最初にクラッシュした場合、好きなように破棄できるかということです。
私はそれが簡単であることを知っています, しかし、私は本当に何をもっと学ぶべきか.
c# - NullReferenceExceptionは処理されませんでした-何がnullかわからない
私はicosphereの構築に取り組んでおり、コードの描画部分まで到達しましたが、NullReferenceExceptionが未処理のエラーでした。私はそれが指しているコードのbtを知っていますが、実際に何が間違っているのか、それを修正する方法がわかりません。
クラスコードは次のとおりです。
それが指しているコードの部分はこれです:
誰かがこの問題の原因を見ていますか?
c++ - このメモリアクセスエラー(C ++)の原因は何ですか?未定義の動作である可能性がありますか?
作業している比較的大きなクラスがあり、これまでのところすべて正常に機能しています(注:実際にはクラスを作成していません。いくつかの機能を追加しているだけです)。ただし、ヘッダーファイルでもう1つの文字列を宣言した後、すべてがクラッシュするようになりました(メモリアクセスエラーが発生します)。その文字列を消去して再構築すると、すべてが正常に機能します。
私は実際にはその文字列で何もしていません....それを宣言するだけで、奇妙なメモリエラーが発生します。
すべての機能を説明しようとすると無駄になるので、これ以上詳しく説明することはできません。問題を見つけるために、ここでどのようなことを探す必要がありますか?この奇妙な動作の原因は何ですか?
エラー自体は次のとおりです。
Unhandled exception at 0x65fd17fd (msvcp80d.dll) in myFile.exe: 0xC0000005: Access violation writing location 0xcdcdcdcd.
基本的に、.hファイルで変更されたのは次のとおりです。
になって:
StringTypeはbasic_stringの拡張です
silverlight - Silverlight UnhandledException から回復する方法
App() 初期化コードに、汎用ハンドラーを含めます
正常に動作する 2 つの画面がありますが、2 つの画面間を何度も (7 から 12 の間で異なります) すばやく移動すると、例外を除いてこのブレークポイントにヒットします。
UnhandledException を削除し、Debugger を unhandled で中断するように設定すると、次のようになります。
を設定してもe.handled = true
、アプリケーションがクラッシュします。
重要な注意:
アプリケーションは、MVVM フレームワークの下で、99.9% 以上の時間で動作し、多数の画面間を移動します。たった 1 人のユーザーが、2 つの画面間をすばやく移動してアプリケーションをクラッシュさせることができたと報告しています。
私の質問は次のとおりです。
原因を特定する方法はありますか?
それを防ぐ方法はありますか?
このエラーから回復する最善の方法は何ですか?
c# - システム dll に障害が発生し、サービスがクラッシュする
書面によるサービスの 1 つに奇妙な失敗パターンがあります。システム dll からエラーが発生し、その 1 分ほど後に、未処理の例外の有無にかかわらず、サービスがクラッシュします。
.Net ランタイム エラー レポートから、次のエラー モジュール メッセージのいずれかが表示されます。
30 秒以上 (ただし 1 分未満) 経過すると、次のような例外が発生する場合と発生しない場合があります。
この遅延/ペア動作を見た人はいますか? どちらのエラーもイベント ビューアに報告されます。これは、物理的に古い XP 製品システムでのみ発生し、dev では発生しません。
c# - WebProtocolException はユーザー コードによって処理されませんでした
私のtryブロックのコードは次のようになります。
何が起こるかというと、条件が満たされ、条件の WebProtolException が満たされ、スローされます。ただし、デバッグ中に外部 WebProtocolException もスローされ、「A の WebProtocolException CustomerID が B の customerId と一致しません。ユーザー コードによって処理されませんでした」というメッセージが表示されます。
ただし、フィドラーを確認すると、400 のステータス コードが表示され、フィドラーの raw タブに、メッセージとともに正しい badrequest 応答が表示されます。
2 番目の WebProtocol がユーザー コードによって処理されない理由がわかりません。
どんな提案でも大歓迎です!
ザル
c# - ロギングを目的としたC#クラスライブラリの未処理の例外
私はソフトウェア開発に不慣れであり、stackoverflowにも不慣れなので、気楽にやってください。
背景:サードパーティのアプリケーションからtcp / ipを介して(非同期ソケットを使用して)送信されたxmlメッセージを処理するC#クラスライブラリを開発しています。クラスライブラリをVb6アプリケーションに公開するためにcom-interopを使用しています。C#ライブラリがソケットを介して受信したxmlを処理すると、消費するvb6アプリケーションがサブスクライブするさまざまなイベントが発生します(このようにして、最終的に.Netでアプリケーション全体を書き直すときに、このコンポーネントはすでに完了しています)。
質問:ロギングの目的でのみ、未処理の例外をすべてキャッチしたいと思います。winformsアプリケーションでは、イベントをAppDomain.CurrentDomain.UnhandledExceptionおよびApplication.ThreadExceptionにフックできます。同様に例外データを取得して、クラスライブラリに情報を記録する方法はありませんか?
重要なポイント:
私はこれらの例外から回復しようとはしていませんが、それらをログに記録し、例外を伝播させ、必要に応じてアプリをクラッシュさせます。
特定の例外が発生する可能性があることがわかっている場合は、ローカルですべての特定の例外をキャッチするように最善を尽くしています。したがって、私の目的は、本当に予期しない例外をログに記録することです。
- これは悪いデザインパターンになると言う人もいるでしょう。代わりに、呼び出し元にこれらの例外を処理させる必要があります。問題は、vb6アプリケーションが私が望むほど堅牢なエラー処理を行っていないことです。主に、スタックトレースをログに記録して、dllが原因でvb6アプリがクラッシュした場合に、変更が必要になる可能性のあるc#コードの潜在的な領域についてアラートを受け取るためにログを表示できるようにします。
誰かが私にいくつかの方向性を提供できますか?私がこれまでに見つけた最良のオプションは、すべてのパブリックメソッドに汎用のtry catchブロックを配置し、例外をログに記録してからスローするようです。これは理想的とは言えません。
これは貧弱な設計のように見えるだけでなく、非同期コールバックの1つが、メソッドが呼び出されたのとは異なるスレッドで例外を引き起こした場合にどうなるかわかりません。この一般的なtry/catchブロックはまだそのような例外をキャッチしますか?
助けてくれてありがとう。
編集:私はもともと@Eric J.の答えを正解としてマークしましたが、ソリューションを実装しようとした後、使用しているソケットクラスからの非同期コールバックではうまく機能しないことがわかりました。スレッドプールスレッドを使用して非同期コールバックを起動すると、スタックの後半で発生する例外をキャッチできないようです。AOPフレームワークを使用する必要がありますか、それともこれらの例外をキャッチする他の方法はありますか?