
El manejo de errores, también llamado manejo de excepciones, es una parte importante de Java, pero también es uno de los elementos más divisivos. El manejo de excepciones permite a un desarrollador anticipar los problemas que pueden surgir en el código para evitar que causen problemas a los usuarios en el futuro. La razón por la que esto puede convertirse en una molestia es que algunos métodos en Java obligan al usuario a manejar excepciones. Aquí es donde entra en juego "try catch" en Java.
¿Qué es Java "try catch"?
Para alguien que no esté familiarizado con la programación, puede ser difícil entender por qué podría escribir código que haga posible que ocurra un error.
Ver también: NullPointerException en Java – Explicación del error de mil millones de dólares
Un buen ejemplo sería FileNotFoundException . Esto hace exactamente lo que dice en el cuadro: esta excepción se "lanza" cuando Java busca un archivo en particular y no puede encontrarlo.
Entonces, ¿qué pasa si alguien está usando su aplicación, cambia al explorador de archivos y luego elimina un archivo guardado que estaba usando la aplicación? En este escenario, su aplicación podría generar una excepción comprensiblemente. Digamos que esto es una excepción más que un error porque es un problema que podríamos prever y manejar razonablemente.
Así que usa un bloque "try catch".
Try esencialmente le pide a Java que intente hacer algo. Si la operación es exitosa, el programa continuará ejecutándose normalmente. Si no tuvo éxito entonces tendrá la opción de redirigir su código teniendo en cuenta la excepción también. Esto sucede en el bloque "captura".
Intente, por ejemplo, catch Java
Aquí hay un ejemplo del uso de try catch en Java:
try { int [] list = {1, 2, 3, 4, 5, 6}; System.out.println (lista [10]); } captura (excepción e) { System.out.println ("¡Ups!"); }
Aquí creamos una lista con 6 entradas. Por tanto, el índice más alto es 5 (ya que "1" está en el índice 0). Intentemos obtener el valor del índice 10.
Intente ejecutarlo y verá el mensaje "¡Ups!"
Observe que pasamos "Excepción y" como argumento. Esto significa que también podemos decir:
System.out.println (e);
Recibiremos el mensaje: "java.lang.ArrayIndexOutOfBoundsException: 10"
Ver también: Curso para principiantes de Java – Una guía gratuita y completa de los conceptos básicos de Java
Ahora que hemos "administrado" nuestro excepción, podemos llamarla una "excepción controlada".
Manejo de excepciones forzadas
Note que podríamos haber escrito este código sin manejar la excepción. Esto haría que el programa fallara, ¡pero esta es nuestra prerrogativa!
En otros casos, un método obligará al usuario a manejar una excepción.
Digamos que creamos un método pequeño que verificará la décima posición de cualquier lista que pasemos como argumento:
public class MyClass { public static void main (String [ ] args) { int [] list = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; System.out.println (checkTen (lista)); } public static int checkTen (int [] listToCheck) { int outPut = listToCheck [10]; return outPut; } }
Funciona perfectamente e imprimirá "11" en la pantalla. Pero si agregamos la palabra clave "throws" a la firma de nuestro método, podemos obligar al usuario a manejarlo.
public static int checkTen (int [] listToCheck) arroja ArrayIndexOutOfBoundsException {
Ahora podemos escribir nuestro código así:
public class MyClass { public static void main (String [ ] args) { int [] list = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; tratar { System.out.println (checkTen (lista)); } catch (ArrayIndexOutOfBoundsException e) { //System.out.println(e); System.out.println ("¡Ups!"); } } public static int checkTen (int [] listToCheck) lanza ArrayIndexOutOfBoundsException { int output = listToCheck [10]; volver a la salida; } }
Esto obligará al usuario a manejar la excepción. De hecho, muchos editores de Java completarán automáticamente el código con el bloque necesario. ¡Tenga en cuenta que debemos usar el tipo de excepción correcto!
Entonces, ¿debería obligar a otros desarrolladores a manejar excepciones cuando escriben sus clases? Realmente depende de ti. Tenga en cuenta que algunos escenarios deberían en realidad hacer que un programa se cierre y obligar a un desarrollador a administrar tales instancias solo creará más código estándar. En otros casos, esta puede ser una forma útil de comunicar problemas potenciales a otros desarrolladores y promover un código más eficiente.
Por supuesto, en el ejemplo que se da aquí, hay otras posibilidades de excepciones. ¿Qué pasa si alguien pasa una lista de cadenas a su método, por ejemplo? Todo lo que puedo decir es, ¡bienvenido al maravilloso mundo de Java!
¡Esta es tu oportunidad de decidir qué tipo de desarrollador quieres ser! Cuando esté listo para averiguarlo, consulte nuestra guía de los mejores recursos para aprender Java.