問題タブ [uncaughtexceptionhandler]

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 投票する
4 に答える
33920 参照

java - Spring AsyncUncaughtExceptionハンドラー

すべての非同期メソッドにtrycatchを配置せずに、Spring Asyncフレームワークを使用してこれをログに記録するにはどうすればよいですか?DefaultUncaughtExceptionHandler普通のようには伝わらないようです。

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

java - UncaughtExceptionHandlerが一部の例外をキャッチしない

この記事に示すように、UncaughtExceptionHandlerを作成しました。

また、次のようなすべてのスレッドで例外をキャッチするために、このハンドラーを登録しました。

ただし、いくつかの例外がありません。

なぜこのような例外が欠落しているのですか?

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

c# - AppDomain.UnhandledException と Application.DispatcherUnhandledException の両方を使用する必要がありますか?

AppDomain.UnhandledException と Application.DispatcherUnhandledException の違いに関するいくつかの優れた投稿を読んだ後、両方を処理する必要があるようです。これは、ユーザーがメイン UI スレッドによってスローされた例外 (つまり、Application.DispatcherUnhandledException) から回復できる可能性が非常に高いためです。正しい?

また、両方のプログラム、または Application.DispatcherUnhandledException のみのプログラムを続行する機会をユーザーに与える必要がありますか?

以下のコード例は、AppDomain.UnhandledException と Application.DispatcherUnhandledException の両方を処理し、例外が発生しても続行するオプションをユーザーに提供します。

[ありがとう、以下のコードの一部は他の回答から持ち上げられています]

App.xaml

App.xaml.cs [編集済み]

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

android - キャッチされていない例外が原因でサービスが Android によって強制終了されるのを防ぐにはどうすればよいですか?

キャッチされていない例外が原因で Android サービスが強制終了されるのを防ぐ方法があるかどうかを調査しています。
5 ~ 6 個のサービスと通信する 10 個の UI アプリがあります。プラットフォームは Android 2.2 です。
予期しない状況により、サービスのロジックの一部が時々例外をスローしています。これにより、迷惑な ANR ポップアップでこれらのサービスが停止されます。これらの例外の根本的な原因を修正するソリューションに取り組んでいますが、Android が問題のあるサービスを強制終了しないようにしたいと考えています。

サービス内のすべてのスレッドに対して Uncaught のデフォルトの例外ハンドラを登録できるようです。これは、例外に関する何かをログに記録する機会を与えてくれます。それはいいです。後で使用するために、この手法を使用してクラッシュ情報をファイルに記録する多くの投稿に出くわしました。人々は、ANR ポップアップを防ぐために元の例外をスローしないことを提案しました。また、サービスが半減状態になる可能性があることを示唆する記事もいくつか見つけました。正しいことは、サービスを強制終了して再起動することです。強制終了して再起動することは、私が興味を持っているオプションではありません。

例外をスローしない場合の半死状態の部分がよくわかりませんでした。さらに調査するつもりです。その間、人々に提案があるかどうか疑問に思っています。
私の目標は、ANR ポップアップを防ぐことです。Android フレームワークがサービスを再起動するかどうかを決定するのではなく、コードでサービスを再起動するかどうかを決定する必要があります。

私が見つけたいのは次のとおりです
。1)サービスがフレームワークコードによって強制終了されるのを防ぐために変更できるマニフェストにフラグはありますか?

2)キャッチされていない例外を処理できるようにするサービスでオーバーライドできるメソッドはありますが、サービススレッドはクライアントからの次の要求を待機状態に戻すことができますか?

提案をありがとう。

ビデオガイ

更新:
Uncaught の既定の例外ハンドラーは、ここでは役に立ちません。何かをログに記録する機会が得られますが、サービス スレッドは引き続き終了します。

プロセスを強制終了しないように、Android フレームワークを変更する必要があります。AndroidフレームワークのActivityManagerService.javaには、クライアントなしでサービスを実行できる時間、バックグラウンドアクティビティ/サービスの数、サービスとUIの初期化のタイムアウトなど、さまざまなしきい値があります。これらの値を上げました。

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

android - キャッチされていない例外ハンドラの使用中にアプリケーションがクラッシュすると、アプリケーションが停止する

キャッチされていない例外ハンドラーを使用して例外をキャッチしていますが、アプリケーションが停止します。この投稿を参照して います キャッチされていない例外を処理した後、アプリケーションがゾンビ化するのを防ぐにはどうすればよいですか? これと同様に、Androidでキャッチされていないグローバル例外ハンドラーを設定する理想的な方法

これは私の例外クラスを呼び出す私のアクティビティ クラスです URL を読んだ後、私が欲しいものを知ることができます.. 私はキャッチされていない例外をコピーしました

スタックトレース

何が問題なのかわからない

  1. 私のスレッドがクラッシュしています
  2. ハンドラーが呼び出されない
  3. または、フロントに例外を取りませんが、アプリケーションが停止します
  4. 例外により、次の可能性がクラッシュします

この停止を防ぐために誰か助けてくれませんか

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

java - Maven exec:java および UncaughtExceptionHandler

次のコードは、Java コマンド ラインから実行すると正常に動作します。ただし、 exec:java を使用して実行すると、その行が表示されません...とにかくこの動作を停止しますか?

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

android - Android アプリケーションの再起動

を使用してアンドロイドでクラッシュが発生したときにアプリを再起動しようとしていThread.UncaughtExceptionHandlerます。現在のアクティビティ スタックを新しいプロセスとしてアプリを再起動できますか?? はいの場合、どうすればできますか?

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

java - Google App Engine Java の UncaughtExceptionHandler

アプリケーションでキャッチされない例外がある場合はいつでも、カスタム ロジックを実行したいと考えています。通常、私は次のようなことをします:

ただし、ThreadGoogle App Engine ではロックダウンされています。上記のコードは、セキュリティ例外を発生させます。Google App Engine で同様の機能を実現する方法はありますか?

編集:私は自分のアプローチをサーブレットフィルターとして実装しました。Java Web プログラミングに関する私の経験はかなり限られています。誰かがそのようなアプローチについてコメントできますか? AppEngine のすべてのリクエストは HTTP リクエストとして発生するため、これは包括的なソリューションだと思います。

0 投票する
4 に答える
5700 参照

java - 例外を再スローする方法

onCreate()で、UncaughtExceptionハンドラーを次のように設定しました。

正常に動作しますが、ユーザーに強制終了ダイアログを表示するというシステムのデフォルトの動作に戻したいと思います。

KillProcess()呼び出しをコンパイラに置き換えようとするとthrow throwable、コンパイラは、try/catchで呼び出す必要があると文句を言います。

try / catchで囲む場合:

throw throwableコンパイラは、try/catchで囲む必要があると文句を言います。

そのスローアブルを再スローするにはどうすればよいですか?その情報を除いてLog.e()、システムは以前とまったく同じように動作します。デフォルトのUncaughtExceptionハンドラーを設定したことはありません。