Log.wtf与未处理的异常

cam*_*ous 8 android

我刚学会了Log.wtf("多么可怕的失败"大声笑),我想知道什么时候应该使用它.

  1. 调用Log.wtf异常和让异常无法处理(崩溃)之间有什么区别?
  2. 它如何影响Google Play开发者控制台中的崩溃报告?
  3. 我经常抛出IllegalStateException意想不到的条件.我应该考虑打电话Log.wtf吗?

编辑:

另请参阅:在什么情况下Android的Log.wtf会终止我的应用程序?

nan*_*ito 4

所做Log.wtf的就是将异常及其堆栈跟踪写入日志中,仅此而已。它既不捕获也不抛出异常。所以

  1. 区别在于是否记录异常。该异常仍未处理。

  2. 它不会影响崩溃报告。

  3. 如果您想记录它,请继续。但你会想继续扔IllegalStateException

编辑

我尝试调试并单步执行,Log.wtf但没有运气。

我发现的内容几乎就是链接问题中的答案。似乎在“默认的可怕故障处理”中Log.wtf创建了一个内部异常(TerribleFailure),它包装了任何给定的异常。然后它调用RuntimeInit.wtf(). 它的 javadoc 说:

报告当前流程中的严重错误。可能会也可能不会导致进程终止(取决于系统设置)。

我想行为Log.wtf取决于设备制造商。我的索尼 C6503 似乎没有引发任何异常或终止进程。

一些开源参考:

https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/util/Log.java

https://android.googlesource.com/platform/frameworks/base/+/master/core/java/com/android/internal/os/RuntimeInit.java