【问题标题】:Uncaught exception within uncaught exception handler未捕获的异常处理程序中的未捕获的异常
【发布时间】:2011-08-30 09:03:08
【问题描述】:

这个问题听起来有点傻;)

如何处理UncaughtExceptionHandler 中未捕获异常的可能性?

【问题讨论】:

  • 这是否意味着您在 UncaughtExceptionHandler 上,现在您想在该处理程序中处理未捕获的异常?

标签: java exception uncaught-exception


【解决方案1】:

非常有趣的问题,我以前没有想过这个问题。

方法似乎是要么在你​​的线程上设置你自己的uncaughtExceptionHandler,要么它会被传递给 JAVAs defaultUncaughtExceptionHandler

我做了一些快速的谷歌搜索,发现了一个从 android 获取崩溃数据的类似案例。 我想你可能对这个链接很感兴趣How do I obtain crash-data from my Android application?

【讨论】:

  • 问题更像是如果您尝试关闭组件以防未捕获的异常处理程序中出现未捕获的异常并且该组件也抛出异常。
【解决方案2】:

好吧,你必须自己抓住它们。您链接的uncaughtException() 的文档清楚地说明了这一点:

Java 虚拟机将忽略此方法引发的任何异常。

但你只能计划到此为止。因此,您处理异常处理程序的异常,但谁处理该代码?记录失败的日志事件也是如此。异常处理程序一直向下......

【讨论】:

  • 嗯,这很奇怪。当我在 Android 上测试它时,它似乎在我故意抛出异常时循环。猜猜这是某种 Android 错误。
  • 当我引入一个错误时,它也为我循环,我的意思是“测试”它,我相信,IBM AIX。
  • @mibollma,Android 是标准 JVM 吗?
  • @Pacerier 我不认为它正在经历 Java 标准化过程。但是在这种情况下,它更有可能是一个错误,因为 android 文档说明了几乎相同的行为:d.android.com/reference/java/lang/…
  • @mibollma,很奇怪,我在“正常”JVM 上遇到了相同的行为:stackoverflow.com/q/24834702/632951
猜你喜欢
  • 2014-09-02
  • 2017-11-25
  • 1970-01-01
  • 1970-01-01
  • 2011-05-20
  • 1970-01-01
  • 2018-05-30
  • 1970-01-01
  • 2018-06-14
相关资源
最近更新 更多