Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Este trabajo no les ayudara en nada, Ejercicios de Métodos Matemáticos

No vean este documento, solamente lo publico para poder acceder a un documento

Tipo: Ejercicios

2023/2024

Subido el 03/05/2024

1 / 4

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Excepciones - 2 - © Fernando Berzal
Gestión de errores
Gestión de erroresGestión de errores
Gestión de errores
Qué hacer cuando se pueden producir errores…
class EjemploSinControlDeErrores
{
public static void main(String args[])
{
mostrarEntero (args, 0);
}
public static void mostrarEntero
(String args[], int n)
{
System.out.println( "Entero: "
+ obtenerEntero(args,0) );
}
public static int obtenerEntero
(String args[], int n)
{
return Integer.parseInt(args[n]);
}
}
Idea inicial: Evitar los errores antes de que se produzcan
Añadir comprobaciones antes de operaciones “peligrosas”
No hacer nada que pueda fallar (algo imposible)
Por tanto, es necesario detectar cuándo se produce un error
para tomar las medidas oportunas en cada momento…
pf3
pf4

Vista previa parcial del texto

¡Descarga Este trabajo no les ayudara en nada y más Ejercicios en PDF de Métodos Matemáticos solo en Docsity!

Gestión de erroresGestión de errores Gestión de erroresGestión de errores

Qué hacer cuando se pueden producir errores…

class EjemploSinControlDeErrores { public static void main(String args[]) { mostrarEntero (args, 0); }

public static void mostrarEntero (String args[], int n) { System.out.println( "Entero: "

  • obtenerEntero(args,0) ); }

public static int obtenerEntero (String args[], int n) { return Integer.parseInt(args[n]); } }

Idea inicial: Evitar los errores antes de que se produzcan

Añadir comprobaciones antes de operaciones “peligrosas”

No hacer nada que pueda fallar (algo imposible)

Por tanto, es necesario detectar cuándo se produce un error

para tomar las medidas oportunas en cada momento…

Solución 1: Códigos de error

Añadir comprobaciones después de operaciones “falibles”

Si se detecta algún error, devolver algún tipo de código de error.

class EjemploConControlDeErrores { public static void main(String args[]) { mostrarEntero (args, 0); }

public static int mostrarEntero (String args[], int n) { int i = obtenerEntero(args,n); int error = 0; String salida = null;

if (i%2 == 0) i = i/2; else error = -1; // Error en los argumentos

if (error == 0) { if ( Runtime.getRuntime().freeMemory() > (8+10)*2 ) error = -2; // Memoria insuficiente }

if (error == 0) { salida = "Entero: " + i; if (salida == null) error = -3; // Error al crear la salida }

if (error == 0) { System.out.println(salida);

if (System.out.checkError()) error = -4; // Error al mostrar la salida }

return error; }

Solución 2: Excepciones

Ya que los errores son inevitables,

las excepciones nos proporcionan una estructura de control que permite

implementar los “casos normales” con facilidad

y tratar separadamente los “casos excepcionales”

class EjemploConExcepciones { public static void main(String args[]) { try { mostrarEntero (args, 0); } catch (Exception error) { // Casos excepcionales... } }

// Casos normales...

public static void mostrarEntero (String args[], int n) { System.out.println( "Entero: "

  • obtenerEntero(args,0) ); }

public static int obtenerEntero (String args[], int n) { return Integer.parseInt(args[n]); } }

Además, las excepciones nos permitirán mantener información acerca de

lo que falló (tipo de error, detalles relevantes y lugar en el que se produjo

el error) y enviar esta información al método que queramos que se

encargue de tratar el problema, todo esto sin interferir con el

funcionamiento normal del programa (p.ej. sentencias return).