0

例外が発生した場合は、ログ サーバーに報告するようにしています。

使用時に java.lang.RuntimeException を継承した例外をキャッチしましたThread.setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler handler)。しかし、java.lang.Error を継承したサブクラスは見つかりませんでした。(例: OutOfMemoryError、IOError、...)

だから私は使用Runtime.addShutdownHook(Thread hookThread)しますが、hookThread.run()メソッドは決して呼び出されません。

Androidでエラーをグローバルにキャッチするにはどうすればよいですか? 私は別のプロセスを使用したくありません..ログサーバーでバグを報告したいだけです。

申し訳ありませんが、スロー可能なエラーを継続的にキャッチしようとしていますが、java.lang.Error もキャッチされることを知っています。UncaughtExceptionHandler.uncaughtException() で実装された関数を実行しないでください。

ただ..確認のためにログを印刷しました。

4

1 に答える 1

0

私はそれを解決します。ただ私は間違っていました。ログ情報を取得するためにThrowableオブジェクトを処理しました。私はThrowable.getCause()メソッドを使用しましたが、java.long.Errorが発生したときはnullです。

uncaughtException() メソッドで例外が発生した場合、ログが正確に出力されません。

ありがとう軸。

于 2012-10-03T04:49:05.167 に答える