Clase de excepción Java Throwable VS

Shubham Vora 12 octubre 2023
  1. Introducción a la clase Throwable en Java
  2. Introducción a la clase Excepción en Java
  3. Qué clase debemos usar, Throwable o Exception
Clase de excepción Java Throwable VS

Este artículo nos enseñará cuándo usar las clases Throwable y Exception en Java. Ambas clases tienen sus constructores y métodos para manejar errores y excepciones.

Primero, veremos la introducción de Throwable y Exception de ambas clases, y después de eso, aprenderemos la diferencia entre ambos.

Introducción a la clase Throwable en Java

En la jerarquía de las clases java.lang, la clase Throwable es el padre o superclase de las clases Error y Exception. Significa que el Error y la Excepción son heredados por la clase Throwable en Java.

Concluye que la clase Throwable puede capturar todos los errores y excepciones producidos por la Máquina Virtual Java, ya sea errores de seguimiento de pila o excepciones de tiempo de ejecución o compilación.

Además, la clase Throwable implementa la interfaz Serializable en la biblioteca java.lang donde se define.

Los usuarios pueden ver la definición de la clase Throwable a continuación.

public class Throwable extends Object implements Serializable

En la definición de clase anterior, los usuarios pueden ver que la clase Throwable hereda la clase Object e implementa la interfaz Serializable.

Sintaxis de Throwable:

try {
  // some code
} catch (Throwable e) {
  // handle errors or exceptions
}

La clase Throwable contiene los constructores sobrecargados, que se explican a continuación.

Constructores

Throwable() Este constructor crea una nueva instancia de Throwable con un mensaje de error predeterminado.
Lanzable (Mensaje de error de cadena) Este constructor crea una nueva instancia de Throwable con un mensaje errorMessage.
Lanzable (Cadena de mensaje de error, Causa de error lanzable) Este constructor también toma la causa del mensaje de error y crea una nueva instancia de Throwable con errorMessage y errorCause.
Lanzable(Causa del error arrojable) Este constructor crea la nueva instancia de Throwable con una causa específica pasada como parámetro.

Métodos

Aquí hemos explicado algunos métodos de la clase Throwable.

toString() Devuelve la descripción del error en formato de cadena.
getMessage() Devuelve el mensaje de error en formato de cadena.
getCause() Devuelve la causa de la instancia actual de un Throwable.
getLocalizedMessage() Devuelve la descripción localizada de Throwable.
getStackTrace() Proporciona información sobre el seguimiento de la pila.
printStackTrace() Imprime la instancia actual de Throwable.
setStackTrace(StackTraceElement[] stackTrace) Permite configurar el elemento de seguimiento de pila devuelto por el método getStackTrace().
initCause(Causa descartable) Permite a los usuarios inicializar la causa del Lanzable actual.

errores

La clase Errores incluye errores que detienen la ejecución del programa.

StackOverflowError Ocurre cuando se produce un desbordamiento de pila o montón.
AssertionError Ocurre debido a una falla en la aserción.
VirtualMachineError Almacena en caché todos los errores en Java Virtual Machine.
LinkageError Ocurre debido a un problema de vinculación.
OutOfMemoryError Ocurre debido a poca memoria en su dispositivo o JVM se está quedando sin memoria.

Introducción a la clase Excepción en Java

En Java, las excepciones son eventos no deseados que ocurren en tiempo de ejecución o compilación. Las excepciones se pueden detectar en el momento de la compilación, denominadas excepciones comprobadas, y las excepciones solo se pueden detectar en el tiempo de ejecución, denominadas excepciones no comprobadas.

Sintaxis de Throwable:

try {
  // some code
} catch (Exception e) {
  // handle Exceptions only
}

Aquí, hemos definido algunos tipos de excepciones en Java.

RuntimeException Todas las clases de excepciones no verificadas lo heredan.
NullPointerException Ocurre debido a un valor nulo o indefinido.
ArithmeticException Ocurre debido a la falla de una operación aritmética.
ArrayIndexOutOfBoundsException Ocurre cuando intentamos acceder a un índice de matriz mayor que su longitud.
NoSuchMethodException Ocurre cuando el método no está definido.
IOException Ocurre debido a la falla de las operaciones de entrada/salida.
ClassNotFoundException Ocurre cuando la clase no está definida.
SQLException La falla de la operación de la base de datos es la causa de esta excepción.

Los programadores también pueden definir excepciones al heredar la clase Exception de Java.

Qué clase debemos usar, Throwable o Exception

Cuando observamos la sintaxis de las clases Throwable y Exception, parece similar a primera vista, ya que estamos usando ambas con el bloque try-catch.

La instancia de la clase Throwable puede atrapar los errores y las excepciones, ya que son una subclase de Throwable, pero la instancia de Exceptions solo puede atrapar las excepciones que ocurren en el programa.

En las aplicaciones Java normales, rara vez se producen errores como LinkageError, VirtualMachineError, OutOfMemoryError, etc. Principalmente se produce una excepción debido al error del usuario.

Por lo tanto, es una buena práctica usar la instancia de la clase Exception en lugar de la clase Throwable.

Shubham Vora avatar Shubham Vora avatar

Shubham is a software developer interested in learning and writing about various technologies. He loves to help people by sharing vast knowledge about modern technologies via different platforms such as the DelftStack.com website.

LinkedIn GitHub

Artículo relacionado - Java Exception