La sentencia try/catch siempre debe tener el formato siguiente:
try { sentencias; } catch (ClaseException e) { sentencias; }
Veamos un ejemplo de como utilizar esta sentencia:
public class MyClass { public static void main(String[ ] args) { int[] myNumbers = {1, 2, 3}; System.out.println(myNumbers[10]); // error! } }
Como podemos ver en la línea para imprimir existe un error dado que en el arreglo no existe la posición 10, por lo cual, el programa deja de funcionar; al agregar el try/catch como podemos ver en el siguiente fragmento de código:
public class MyClass { public static void main(String[ ] args) { try { int[] myNumbers = {1, 2, 3}; System.out.println(myNumbers[10]); } catch (Exception e) { System.out.println("Something went wrong."); } } }
Cuando realizamos la ejecución del código, podemos ver que este también falla, pero al tener la sentencia try/catch, este entra por el catch y nos imprime el mensaje Something went wrong.
También en la sentencia try/catch tenemos el finally, lo cual, nos permite permite ejecutar código, después try...catch, independientemente del resultado:
public class MyClass { public static void main(String[] args) { try { int[] myNumbers = {1, 2, 3}; System.out.println(myNumbers[10]); } catch (Exception e) { System.out.println("Something went wrong."); } finally { System.out.println("The 'try catch' is finished."); } } }
Cuando realizamos la ejecución de este fragmento de código, sabemos que va a ejecutar un fallo por lo que nos imprime el mensaje Something went wrong. y ademas tambien entra por el finally y nos imprime el mensaje The 'try catch' is finished.