問題タブ [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.
c# - この UnhandledException イベント ハンドラーが機能しないのはなぜですか?
例外後にコードを実行できません。印刷中です
ccccc
しかし、印刷されません
AFTER_EXCEPTION
コードはキャッチされた例外を示しており、その後存在します。
ios - カスタム NSUncaughtExceptionHandler 呼び出し前の例外ハンドラー
NSSetUncaughtExceptionHandler
私のアプリには、クラッシュをキャッチするために使用するクラッシュ レポート ライブラリが含まれています。クラッシュ レポートの実装の前後に、カスタム アクション (ログ クラッシュと表示アラート ビュー) を実装する必要があります。この動作を実現するには、まず を使用して以前の UncaughtExceptionHandler への参照を保持しNSGetUncaughtExceptionHandler()
、カスタム例外ハンドラーとシグナル ハンドラーを登録します。カスタム ハンドラーで、カスタム アクションの前/後に前のハンドラーを実行しようとしましたが、これにより、previousHandler(exception) のシグナル SIGABRT がスローされます (両方の場合)。コード例は次のとおりです。
- シグナルをスローせずに前のハンドラーを実行するにはどうすればよいですか?
SignalHandler
システムがシグナルをスローしたときに呼び出されない理由はありますか?
android - Android - UncaughtExceptionHandler : 実行を完了するまでの最大時間
UncaughtExceptionHandler が MainThread で実行され、すべての未処理の例外を処理することを理解しています。スロー可能な情報とスレッド情報をファイルに書き込もうとしていますが、これはメインスレッドでのみ行う必要があります。IO操作は比較的時間がかかり、高価な操作であるため、そうすることでAndroidでANRがスローされる可能性があることを懸念しています。
キャッチされていない例外ハンドラの実行中にメインスレッドが待機できる最大時間制限は?
javafx - JavaFX:開始メソッドが失敗したときにエラーダイアログを表示する方法は?
JavaFX アプリケーションで、予期しない例外が発生するたびにエラー ダイアログを表示してアプリを終了したいと考えています。だから私のメインメソッドでは、アプリを起動する前にデフォルトのキャッチされていない例外ハンドラーを設定しました:
説明: キャッチされていない例外ハンドラーが JavaFX アプリケーション スレッド (FXAT) で実行されると、ダイアログを表示するためのコードを実行するだけです。もちろん、例外ハンドラが FXAT によって呼び出されない場合、これは機能しません。この場合、コードを FXAT にプッシュする必要があります。しかしPlatform.runLater
、ダイアログが表示される前にアプリが終了するため、使用できません。runAndWait
そこで、ランナブルを 経由で内部的にプッシュするカスタム メソッドを作成しましたPlatform.runLater
が、ランナブルの実行まで待機します (カウントダウン ラッチ メカニズムを使用)。
これに関する問題: start() メソッドで例外が発生すると、アプリが動かなくなります。ダイアログが表示されるまで待機しようとしますが、FXAT は決してこの実行を行いません。これは、start() メソッドが例外で失敗した場合、FXAT が死んでいるからだと思いますか? これが start() メソッドの特殊なケースなのか、それとも例外がスローされ、FXAT によって実行されるコード内でキャッチされない場合に発生するのかはわかりません。
私が知っているように、Swing では、EDT は複数のスレッドで構成される複雑なアーキテクチャです。EDT での実行の一部が失敗したときに Swing 全体が壊れたということはありませんでした。しかし、これは何が起こっているようですか?
ここで何ができますか?アプリケーションを起動できないことをユーザーに示すにはどうすればよいですか?
java - Java UncaughtExceptionHandler は、JNI を使用して例外を取得していません
一連のタスクを実行する Java ライブラリがあります。そして、次を使用して、デフォルトのキャッチされていない例外ハンドラーを登録しました。
Thread.setDefaultUncaughtExceptionHandler(new JavaUncaughtExceptionHandler());
UncaughtExceptionHandler が実装されUncaughtExceptionHandler
、エラー情報のみが に記録されSTDERR
ます。
私のJavaライブラリはC++コードからJNIを介して呼び出され、JNIはそれを呼び出しておりExceptionCheck()
、C++でFATALとしてエラーをログに記録しています。
問題は:
実行時にRuntimeException
、Java コードで (またはその他のキャッチされない例外) が発生すると、JavaUncaughtExceptionHandler
スレッドのデフォルトのキャッチされない例外ハンドラーとして登録されている代わりに、C++ でエラーがキャプチャされます。
- それは例外的な動作ですか?
DefaultUncaughtExceptionHandler
実際に呼び出されるのはいつですか?スレッドがシャットダウンする前に知っていますが、具体的には JNI の場合です。C++ に戻る前に呼び出されるか、C++ コードが終了した後にも呼び出されます)。JNIのスレッド管理に関係していると思いますので、関連情報も教えてください。- とにかく、Javaコードですべての例外をキャッチできますか(
try
/catch
ブロックを置く以外の別の方法)
本当にありがとう。
java - スレッドの DefaultUncaughtExceptionHandler が AlertDialog onClick() メソッドでスローされた例外をキャッチしない
UncaughtExceptionHandler
の現在のスレッドのデフォルトを設定し、Activity
のリスナーからonCreate()
a をスローしましたが、例外はキャッチされません。また、 andから例外をスローしようとしましたが、キャッチされませんでした。ただし、またはからスローされるとキャッチされます。RunTimeException
AlertDialog
onClick()
onCreateOptionsMenu()
onOptionsItemSelected()
onCreate()
onResume()
これが私の活動です:
そして、ここに私の例外ハンドラがあります:
アクティビティで作成したログ メッセージに基づいて、スレッドは と の場合と同じonCreate()
ですonClick()
。
onClick()
、onCreateOptionsMenu()
またはからスローされたときに例外がキャッチされないのはなぜonOptionsItemSelected()
ですか?