Uso de arrojable
Una gran ventaja de usar Throwable es que puede guardar la información de la pila del método del que se crea una instancia a través del método:
Puedes combinarlo y su causa Throwable y su The. Se imprime la información de la pila de la causa... (recursión).
Por ejemplo, ¿qué sucede si no solo queremos enviar la información de la pila de un objeto Throwable a la consola, sino también guardarla en un registro local o enviarla al servidor? Luego necesitas extraer la información de la pila de Throwable.
Afortunadamente, la clase android.util.Log proporciona un método de herramienta de este tipo:
A través de este método, puede extraer directamente la información de la pila del objeto Throwable.
Tiene 4 métodos de construcción. Cada constructor llama a fillInStackTrace() para registrar la información de la pila actual.
Solo dos parámetros son opcionales: Mensaje tipo String y su causa Throwable.
Así que ahora echemos un vistazo al uso de estas dos variables para Throwable y lo que significan para nosotros.
Hablemos primero de la conclusión: las variables detalleMessage y causa se imprimirán cuando se llame a printStackTrace().
Mira printStackTrace()
Mira cómo toString incluye el mensaje:
Mira la causa de la impresión:
Puedes descubrirlo , el método printEnclosedStackTrace() llama a getCause() y printEnclosedStackTrace(), por lo que en realidad es una recursión hasta que llega a la causa raíz.
Luego, cuando queramos construir un objeto Throwable, si hay un Throwable asociado en el contexto, utilícelo como parámetro de causa para construir un nuevo objeto Throwable, que puede registrar mejor la causa real del problema. .