Was Log.wtf
tut, ist die Ausnahme und seinen Stack-Trace in dem Protokoll schreiben, und nur diese. Es fängt keine Exceptions ab und wirft sie auch nicht ab. Also
-
Der Unterschied besteht darin, dass die Ausnahme protokolliert wird oder nicht. Die Ausnahme bleibt unbehandelt.
-
Es hat keine Auswirkungen auf Absturzberichte.
-
Wenn Sie es protokollieren möchten, gehen Sie voran. Aber du willst weiterhin
IllegalStateException
werfen.
BEARBEITEN
Ich habe versucht, das Debuggen und Schritt in Log.wtf
, aber kein Glück.
Was ich gefunden habe, ist ziemlich genau, was in der verknüpften Frage beantwortet wird. Es scheint, dass in dem „Standard schreckliche Fehlerbehandlung“ Log.wtf
erstellt eine interne Ausnahme ( TerribleFailure
), die jede gegebene Ausnahme umschließt. Dann ruft es RuntimeInit.wtf()
auf. Sein Javadoc sagt:
Melden Sie einen schwerwiegenden Fehler im aktuellen Prozess. Kann oder darf nicht verursachen der Prozess zum Beenden (hängt von den Systemeinstellungen ab).
Ich denke, das Verhalten von Log.wtf
liegt beim Gerätehersteller. My Sony C6503 scheint keine Ausnahme zu erhöhen oder den Prozess zu töten.
Einige Open-Source-Referenz: