https://www.w3schools.com/java/java_try_catch.asp
https://beginnersbook.com/2013/04/try-catch-in-java/
https://www.geeksforgeeks.org/types-of-exception-in-java-with-examples/
https://www.geeksforgeeks.org/throw-throws-java/
public static void main(String[] args) { try { int a[] = new int[7]; //a[14] = 30 ; a[4]=30/0; System.out.println("Sin errores"); } catch (ArithmeticException e) { System.out.println("Error aritmético"); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("Fuera de índices"); } catch (Exception e) { System.out.println("Otra excepción"); } finally{ System.out.println("Bloque final"); } System.out.println("Fuera del try"); }
package com.trifulcas.excepciones; import java.util.InputMismatchException; import java.util.Scanner; public class EjemplosExcepcion { public static void main(String[] args) { Scanner in = new Scanner(System.in); int[] foo = new int[3]; boolean ok = false; do { try { ok = true; System.out.println("Introduce dividendo"); int dividendo = in.nextInt(); System.out.println("Introduce divisor"); int divisor = in.nextInt(); System.out.println("Introduce posicion"); int posicion = in.nextInt(); foo[posicion] = dividendo / divisor; } catch (ArithmeticException e) { ok = false; System.out.println("Error aritmético"); } catch (ArrayIndexOutOfBoundsException e) { ok = false; System.out.println("Fuera de índices"); } catch (InputMismatchException ex) { System.out.println("Quillo, mete un número porfi"); ok = false; in.next(); // quitar la cadena de en medio } catch (Exception ex) { System.out.println(ex); } } while (!ok); System.out.println("Hola que tal"); } }
package com.trifulcas.testEjercito; import java.util.Scanner; import com.trifulcas.ejercitos.Ejercito; public class Test { static Scanner in; public static void main(String[] args) { try { in = new Scanner(System.in); System.out.println("Bienvenido al simulador. Vamos a crear un ejército"); System.out.println("¿Cuantos soldados quieres? (máximo 100)"); int soldados = getNumero(100); System.out.println("¿Cuantos lanceros quieres? (máximo 100)"); int lanceros = getNumero(100); System.out.println("¿Cuantos capitanes quieres? (máximo 100)"); int capitanes = getNumero(100); Ejercito miEjercito = new Ejercito(soldados, lanceros, capitanes); System.out.println("Ejercito creado con " + soldados + " soldados " + lanceros + " lanceros y " + capitanes + " capitanes"); System.out.println("El daño total es " + miEjercito.totalDanyo()); int respuesta; do { respuesta = menu("¿Qué quieres hacer?\r\n" + "1- Atacar\r\n" + "2.- Retirada\r\n" + "0.- Salir"); if (respuesta == 1) { atacar(miEjercito); } else if (respuesta == 2) { retroceder(miEjercito); } else if (respuesta != 0) { System.out.println("Los valores válidos son 1,2 y 0"); } } while (respuesta != 0); } catch (Exception ex) { System.out.println("Error"); } } public static int menu(String texto) { System.out.println(texto); int respuesta = getNumero(2); return respuesta; } public static void atacar(Ejercito miEjercito) { int respuesta; do { respuesta = menu( "Has decido atacar\r\n" + "1- Con todas las unidades\r\n" + "2.- Con una unidad\r\n" + "0.- Salir"); if (respuesta == 1) { miEjercito.aLaCarga(); } else if (respuesta == 2) { System.out.println("¿Con qué unidad quieres atacar (1-" + miEjercito.getTotalUnidades() + ") ?"); int unidad = getNumero(miEjercito.getTotalUnidades()); if (unidad >= 1 && unidad <= miEjercito.getTotalUnidades()) { miEjercito.getUnidad(unidad - 1).cargar(); } else { System.out.println("Unidad fuera de rango"); } // Otra manera: miEjercito.cargarUnidad(unidad);) } else if (respuesta != 0) { System.out.println("Los valores válidos son 1,2 y 0"); } } while (respuesta != 0); } public static void retroceder(Ejercito miEjercito) { int respuesta; do { respuesta = menu("Has decido retroceder\r\n" + "1- Con todas las unidades\r\n" + "2.- Con una unidad\r\n" + "0.- Salir"); if (respuesta == 1) { miEjercito.retirada(); ; } else if (respuesta == 2) { System.out.println("¿Con qué unidad quieres retroceder (1-" + miEjercito.getTotalUnidades() + ") ?"); int unidad = getNumero(miEjercito.getTotalUnidades()); if (unidad >= 1 && unidad <= miEjercito.getTotalUnidades()) { miEjercito.getUnidad(unidad - 1).retroceder(); } else { System.out.println("Unidad fuera de rango"); } } else if (respuesta != 0) { System.out.println("Los valores válidos son 1,2 y 0"); } } while (respuesta != 0); } public static int getNumero(int max) { boolean ok = true; int num = 0; do { try { ok = true; num = in.nextInt(); if (num<0) { System.out.println("No valen números negativos"); ok=false; } if (num>max) { System.out.println("No valen números mayores de "+max); ok=false; } } catch (Exception ex) { System.out.println("Debe introducir un número"); in.nextLine(); ok = false; } } while (!ok); return num; } }