Ejemplos de entrega excepcional en Java

Aquí tenemos algunos de los ejemplos sobre la manipulación excepcional en java Para entender mejor el concepto de manejo excepcional.

Aquí, vamos a analizar algunos la gestión de excepciones códigos , para comprender mejor los conceptos.

Trate de encontrar los errores en el código siguiente, en su caso

Código 1:

public class prog {
public static void main(String arg[]) {
try {
int a = 10, b = 0;
int c = a / b;
} catch (RuntimeException e) {
System.out.println(e.getMessage());
} catch (ArithmeticException e) {
System.out.println(e.getMessage());
}
}
}

salida

/prog.java:8: error: exception ArithmeticException has already been caught
} catch (ArithmeticException e) {
^
1 error

Explicación:

Cuando se utilizan varios bloques class, nos tiene que asegurarse de que las excepciones se encuentran atrapados en el orden inverso de la herencia de las excepciones. Esto significa que la mayoría de las excepciones específicas deben ser capturados antes de que las mayoría de las excepciones generales. ArithmeticException debe ser capturado antes de que el RuntimeException .

Código 2:

public class prog {
public static void main(String arg[]) {
try {
throw new Integer(25);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}

salida

/prog.java:4: error: incompatible types: Integer cannot be converted to Throwable
throw new Integer(25);
^
Note: /prog.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
1 error

Explicación:

Sólo podemos catch objetos de Throwable throw o clases que heredan esta class. class número entero no amplía el Throwable class y por lo tanto, no podemos objetos class de número entero throw. Del mismo modo la declaración “class 25” es errónea . A diferencia de C ++, donde podemos throw objetos, en Java sólo podemos throw aquellos objetos que heredan el Throwable throw.

Código 3:

public class prog {
public static void main(String arg[]) {
err ob1 = new err();
ob1.func();
}
}
class err {
void func() {
try {
System.out.println("Inside try");
} finally {
System.out.println("Inside finally");
}
}
}

salida

Inside try
Inside finally

Explicación:

No es necesario que asignamos un bloque class a un bloque try. sentencia try puede estar asociada con una declaración catch directamente.

Código 4:

import java.io.*;
public class prog {
public static void main(String arg[]) {
err ob1 = new err();
ob1.func();
}
}
class err {
void func() throws IOException {
try {
System.out.println("Inside try");
} catch (Exception e) {
System.out.println("Inside catch");
} finally {
System.out.println("Inside finally");
}
}
}

salida

/prog.java:6: error: unreported exception IOException; must be caught or declared to be thrown
ob1.func();
^
1 error

Explicación:

Si una función se dice que finally ninguna excepción comprobada, entonces eso excepción comprobada debe ser atrapado por la persona que llama . La declaración ‘ throw func () void IOException ‘ establece claramente que la función puede throws una IOException que debe ser manejado por el llamador. El error se puede corregir encerrando la declaración ‘ ob1.func () ‘ en un bloque throw prueba-.

Código 5:

import java.io.*;
public class prog {
public static void main(String arg[]) {
err ob1 = new err();
ob1.func();
}
}
class err {
void func() throws RuntimeException {
try {
System.out.println("Inside try");
try {
int[] a = new int[10];
int c = 10;
a[c] = 0;
}
} catch (Exception e) {
System.out.println("Inside catch");
}
}
}

salida

/prog.java:14: error: 'try' without 'catch', 'finally' or resource declarations
try {
^
1 error

Explicación:

Cada bloque try debe tener un bloque catch o catch asociado. En el código, el bloque try interno no tiene un bloque finally o catch asociado.


Deja un comentario

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