Clase arrojable en Java con ejemplos

Las clases y los objetos son conceptos básicos de la programación orientada a objetos que giran en torno a las entidades de la vida real. Una clase es un proyecto o prototipo definido por el usuario a partir del cual se crean objetos. Representa el conjunto de propiedades o métodos que son comunes a todos los objetos de un tipo. En este artículo, discutiremos la clase Throwable , sus constructores y los diferentes métodos disponibles en esta clase. 

La clase Throwable es la superclase de cada error y excepción en el lenguaje Java. Solo los objetos que son una de las subclases de esta clase son lanzados por cualquier «Máquina virtual de Java» o pueden ser lanzados por la declaración de lanzamiento de Java. Por motivos de verificación de excepciones durante el tiempo de compilación, Throwable y cualquier subclase de Throwable que no sea también una subclase de Error o RuntimeException se consideran excepciones verificadas .

La clase arrojable es la clase raíz de la jerarquía de excepciones de Java y es heredada por dos subclases: 
1.Excepción 
2.Error 
La clase arrojable implementa la interfaz serializable y las clases directas conocidas para arrojar son Error y Excepción.  
Throwable contiene una instantánea de la pila de ejecución de su subproceso en el momento en que se creó. También puede contener una string de mensaje que brinda más información sobre el error. También puede suprimir la propagación de otros objetos desechables. 

Si un usuario desea crear su propio arrojable personalizado, entonces puede extender la clase de arrojable. 

Ejemplo: 
Class MyThrowable extends Throwable{ 
//Aquí el usuario puede crear su propio throwable personalizado 
}
Class GFG{ 
Public void test() throws MyThrowable{ 
// el throwable personalizado creado se puede usar de la siguiente manera 
throw new MyThrowable(); 

La declaración de clase para la clase java.lang.Throwable es la siguiente: 

Java

public class Throwable
    extends Object
    implements Serializable

Constructores : cualquier clase puede tener cualquiera de los tres o los tres tipos de constructores. Son constructores predeterminados, parametrizados y no parametrizados. Esta clase tiene principalmente los siguientes constructores definidos: 

Constructores Públicos  

  1. Throwable(): es un constructor no parametrizado que construye un nuevo Throwable con nulo como mensaje detallado.
  2. Throwable (mensaje de string): es un constructor parametrizado que construye un nuevo Throwable con el mensaje detallado específico.
  3. Throwable (mensaje de string, causa Throwable): es un constructor parametrizado que construye un nuevo Throwable con el mensaje detallado específico y una causa.
  4. Throwable (causa de Throwable): es un constructor parametrizado que construye un nuevo Throwable con la causa específica y un mensaje detallado de la causa al convertir el caso a String usando el método toString().

Constructores protegidos 
1. Throwable(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) : Construye un nuevo throwable con el mensaje de detalle especificado, la causa, la supresión habilitada o deshabilitada y el rastreo de pila grabable habilitado o deshabilitado.
Los parámetros son: – 
mensaje: el mensaje de detalle. 
causa – la causa. (Se permite un valor nulo e indica que la causa es inexistente o desconocida). 
enableSuppression: si la supresión está habilitada o deshabilitada 
.

Métodos: además de los constructores mencionados anteriormente, también hay muchos métodos predefinidos disponibles en la clase throwable. Están: 

1. addSuppressed(ThrowableException) : este método agrega la excepción especificada a las excepciones que se suprimieron para entregar esta excepción. 
Sintaxis: 
Public final void addSuppressed(Excepción lanzable) 
Devoluciones: Este método no devuelve nada.
2. fillInStackTrace() :Rellena el seguimiento de la pila de ejecución. Este método registra información sobre el estado actual de los marcos de pila para el subproceso actual dentro del objeto Throwable actual. 
Sintaxis: 
public Throwable fillInStackTrace() 
Devuelve: una referencia a la instancia actual de Throwable.
3. obtenerCausa(): Devuelve la causa que se suministró a través de uno de los constructores que requieren un Throwable, o que se estableció después de la creación con el método initCause(). 
Sintaxis: 
public Throwable getCause() 
Devuelve: la causa del Throwable actual. Si la causa es inexistente o desconocida, devuelve nulo.
4. getLocalizedMessage() : este método crea una descripción localizada del Throwable actual. 
Sintaxis: 
public String getLocalizedMessage() 
Devuelve: La descripción localizada del Throwable actual
5. getMessage() :Devuelve la string de mensajes detallada del throwable actual. 
Sintaxis: 
public String getMessage() 
Devuelve: la string de mensaje detallada de la instancia actual de Throwable (también puede devolver un valor nulo)
6. getStackTrace() : este método proporciona acceso programático a la información de seguimiento de la pila impresa por printStackTrace(). Devuelve una array de elementos de seguimiento de pila, cada uno de los cuales representa un marco de pila. El elemento cero de la array (suponga que la longitud de la array no es cero) es la última invocación del método en la secuencia. También representa la parte superior de la pila y es el punto en el que se creó y lanzó este objeto desechable. El último elemento de la array (suponiendo que la longitud de la array no sea cero) es la primera invocación del método en la secuencia y representa la parte inferior de la pila. 
Sintaxis: 
public StackTraceElement[] getStackTrace() 
Devoluciones: una array de elementos de seguimiento de pila que representan el seguimiento de pila relacionado con Throwable actual.
7. getSuppressed() : Devuelve una array que contiene todas las excepciones que fueron suprimidas, para entregar esta excepción. Si no se suprimieron excepciones o si la supresión está deshabilitada, se devuelve una array vacía. 
Sintaxis: public final Throwable[] getSuppressed() 
Devuelve: una array que contiene todas las excepciones que se suprimieron para entregar esta excepción.
8. initCause (Causa arrojable) : Inicializa la causa de la arrojabilidad actual al valor especificado. Este método se puede llamar como máximo una vez. Generalmente se llama desde dentro del constructor, o inmediatamente después de crear el arrojable. 
Sintaxis: public Throwable initCause (Causa arrojable) 
Parámetros:  Causa arrojable:
la causa del arrojable actual. 
Lanza: 
1. IllegalArgumentException: esta excepción se lanza si la causa es el arrojable actual, porque un arrojable no puede ser su propia causa. 
2. IllegalStateException: Ocurre si este método ya ha sido llamado en el lanzamiento actual. 
Devuelve: una referencia a la instancia actual de Throwable.
9. printStackTrace() : Imprime el arrojable actual y su seguimiento hacia el flujo de error estándar. 
Sintaxis: public void printStackTrace()
Devoluciones: Este método no devuelve nada.
10. printStackTrace(PrintWriter s):Imprime el arrojable actual y su seguimiento hacia el escritor de impresión especificado. 
Sintaxis: public void printStackTrace (PrintWriter s) 
Parámetros: PrintWriter: es el PrintWriter que se utilizará para la salida 
Devoluciones: este método no devuelve nada.
11. printStackTrace(PrintStream s) : Imprime el lanzamiento actual y su seguimiento hacia el flujo de impresión especificado. 
Sintaxis: public void printStackTrace (PrintStream s) 
Parámetros: PrintStream: es el PrintStream que se utilizará para la salida 
Devoluciones: este método no devuelve nada.
12. setStackTrace(StackTraceElement[] stackTrace) : este método establece los elementos de seguimiento de la pila que getStackTrace() devolverá e imprimirá printStackTrace() y los métodos relacionados. 
Sintaxis: public void setStackTrace (StackTraceElement[] stackTrace) 
Parámetro: StackTraceElement: estos son los elementos de seguimiento de la pila que se asociarán con el Throwable actual. 
Lanza: 
NullPointerException: si stackTrace es nulo o si alguno de los elementos de stackTrace es nulo 
. Devuelve: 
este método no devuelve nada.
13. toString() : este método devuelve una breve descripción del arrojable actual. 
Sintaxis: public String toString()
Devuelve: una representación de string del objeto arrojable actual.

El siguiente programa demuestra el método toString() de la clase Throwable:

Java

// Java program to demonstrate
// the toString() Method.
 
import java.io.*;
 
class GFG {
 
    // Main Method
    public static void main(String[] args)
        throws Exception
    {
 
        try {
 
            testException();
        }
 
        catch (Throwable e) {
 
            // Print using tostring()
            System.out.println("Exception: "
                               + e.toString());
        }
    }
 
    // Method which throws Exception
    public static void testException()
        throws Exception
    {
 
        throw new Exception(
            "New Exception Thrown");
    }
}
Producción: 

Exception:
 java.lang.Exception:
 New Exception Thrown

 

El siguiente programa demuestra el método getMessage() de java.lang.Throwable Class: 

Java

// Java program to demonstrate
// the getMessage() Method.
 
import java.io.*;
 
class GFG {
 
    // Main Method
    public static void main(String[] args)
        throws Exception
    {
 
        try {
 
            // Divide the numbers
            divide(2, 0);
        }
 
        catch (ArithmeticException e) {
 
            System.out.println(
                "Message String = "
                + e.getMessage());
        }
    }
 
    // Method which divides two numbers
    public static void divide(int a, int b)
        throws ArithmeticException
    {
 
        int c = a / b;
        System.out.println("Result:" + c);
    }
}
Producción: 

Message String = / by zero

 

Referencia : https://docs.oracle.com/javase/9/docs/api/java/lang/Throwable.html/
 

Publicación traducida automáticamente

Artículo escrito por Slash_IT y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *