! ! " # ! ! ! % ! ! & ' " *) + $ ! ' ! ' ! &#) ), ) ) ! , ) &(---) ( package ejemplos.tema2.gestionDeFigurasSinExcepciones; public class TestSituacionesInesperadas { private static Scanner teclado = new Scanner(System.in).useLocale(new Locale("es", "US")); . /) 0 ! /)/ # /)( 1! 2 /)3 1 ' " ! " # " ! " # 2 4 () 5 0 ! ()/ $ ()( 4 2 % ()()/ ()()( ' $ & $ ! " ! " ( !( public static void main(String args[]){ GrupoDeFiguras g = new ArrayGrupoDeFiguras(); int opcion; do { opcion = menu(); if ( opcion != 0 ) procesar(opcion, g); } while ( opcion != 0 ); } private static int menu(){ int res = 0; System.out.println(); System.out.println(" *** MENÚ ***"); System.out.println("1.- Insertar una nueva Figura en el Grupo"); System.out.println("2.- Buscar una Figura en el Grupo"); System.out.println("3.- Borrar una Figura del Grupo"); System.out.println("4.- Recuperar por posición una Figura del Grupo"); System.out.println("5.- Calcular el área del Grupo"); System.out.println("6.- Mostrar las Figuras que componen el Grupo"); System.out.println("7.- Mostrar las Figuras del Grupo ordenadas por área"); System.out.println("8.- Mostrar array con las mismas Figuras que el Grupo"); System.out.print("Seleccione opción: "); res = teclado.nextInt(); return res; } 6" 7 " 8 8 ' 9 -)):;< private static void procesar(int opcion, ArrayGrupoDeFiguras g) { switch (opcion) { "7 $ case 1: Figura f = menuFigura(); 6 6" 7 " f.leer(teclado); 4 < g.insertar(f); < break; case 2: Figura fB = menuFigura(); 6" 7 0 fB.leer(teclado); 8 ' System.out.println("Buscando la Figura "+fB); 4 < int p = g.indiceDe(fB); System.out.println(“1ªapar.de "+fB+”:”+g.recuperar(p).toString()); break; case 3: Figura fD = menuFigura(); fD.leer(teclado); 6" 7 ' boolean b = g.eliminar(fD);8 0 System.out.println("Borrando "+fD); 4 … private static Figura menuFigura(){ Figura res = null; System.out.println("PULSE ... "); System.out.println("1 para leer Círculo"); System.out.println("2 para leer Rectángulo"); System.out.println("3 para leer Cuadrado"); int opcion = teclado.nextInt(); if ( op == 1 ) res = new Circulo(); else if (op==2) res=new Rectangulo(); else if (op==3) res=new Cuadrado(); return res; } 6" 7 " 8 < System.out.println(“¿Borrada "+fD+" del Grupo?:”+b); break; case 4: System.out.println("Indique la6 posición " 7 int i = teclado.nextInt(); Figura fR = g.recuperar(i); 8 ' 9 /))3;< de la Figura a recuperar:" ); " < System.out.println("Recuperada la Figura "+fR+" de la posición "+i); case case case case 5: 6: 7: 8: System.out.println("Área total :"+g.area()); break; System.out.println(g.toString()); 6" 7 break; 8 System.out.println(Arrays.toString(g.ordenar())); break; ' 4 < System.out.println(Arrays.toString(g.toArray())); break; } } 0 5 0 = ! & ! '? , & " !7 4 0 ! > ) & 2 2 " ! & )* @ & @ B ) )B ! ! ! ! ' ' > @& ! " @ & & " ! ! ! &) ) 0 ) " ! ! ! " @ A : ! " #$ ! " # ! ! ! " # @ ! " ! " # @ ) + )* )* ! " # , )* )* & )* & $ % & ' )* /- ) * # ! " Scanner + ( 2 2 java.util C public double nextDouble() Scans the next token of the input as a double. This method will throw InputMismatchException if the next token cannot be translated into a valid double value. If the translation is successful, the scanner advances past the input that matched. ... Returns: the double scanned from the input Throws: InputMismatchException - if the next token does not match the Float regular expression, or is out of range NoSuchElementException - if the input is exhausted IllegalStateException - if this scanner is closed // ) 2 ) ! ? - ) 8 2 EF E! )* ! D GD G? H ! 8 EG D EG? H H ! " @ 2 !7 I EG 2 /( . )* $ ( % )* # ' + -$ , ' # *, # .$ 01 # ) 0 ! 1 " @ , / !)* , / !)* EJ I ! >2 K ' & ' # ) # * & # # # ' # ) ) # ' ! # /3 $ % /M . )* @ 0 2 0 45 66 78 ! ! " " ! )))J LJ G? 1 ' @ ) 2 8 ' & ! " 3 ) + > O, *$ - ) # # .$ # 1 ! " G + ( ) # ' & #, + -$ # ' # EJ! ' # & ' $ 0 ' J L))G? 3 1 ' # ! " # 2 2 ) # * ! " ' / @ ' ' *$ $ 0 ) !( # # + G ) ( & ) ! /N /A & ) 1 ! & : throws 9 0 & @ ) 8 2 I ! >2 + > ' ; & & ' )))) E 45 66 78 ! ! " " ! P L G? ))) ) " " GD ! G 8 ' , & & $$$$$$ 2 0 @ ; ' & ' # E % F # ' # H EG : 1 throws 9 ) # " EF EP 1 2 R " * ) $ + #& & , - # EG? ))) ! & * GD )))) 0 ' ' H "( " /: /Q ' ( !( & !7 ! ) # $ * ! F !7 2 2 " ! < & ? & == ? " 2 > " @ " ? !' # !0 2 !7 / # > ( $ >2 < # 5 == > ) 5 == ) " ! !0 2 ! &> # ' 2 5 / 2 5 ( 2< # < == # 4 55 ? (- (/ ) , > / ) leer !)* E + H ) , " , & & , .$ / $ %- "0 " & # # $ 1 %) * 2 2 # , .$ ) * $ ) * & ) " * 3 ) ! ! 4 4 %5 67 ) * * % ) " $ / 0 leer !)* % %) * * # / 0 %) * ) " $ %- .$ / 0 ) * %) * , %) * , ) * 1 * , %- > ) " % $ , * % $ %) * * $ - #& & , % # $ ) " , " " , ,! $ # +* # & ) " $ # +* $ & % $ leer !)* % , # ) / leer !)* # +* > , / % 0 ! 0 EGD R ? !) ) EJ , #F ))) J G? !) ) EJ / J G? !) ) EJ ( * ' J G? !) ) EJ 3 J G? #R. / " $ EG? % &'&() * ) 2 RR / G R O EG? E RR(G R O* EG? E RR3G R O EG? * ? 0 F F F F > % 4 + 2 * , 4 ) " ( $ $ % 8$4 4 %) ) * $ %) *, ) ) 0 E G ! " )))) E 45 66 78 ! G ! " " ! 8 ! ) - ) 8 * D EP 1 2 S P L G? 0 2 ))) H BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 5 4 0 EF ! EF D F F 9 ; GD )))) 1 4 0 R O1 4 0 EG? System.out.println("Introduzca la posición de la Figura a recuperar del Grupo"); int indice = LecturaValida.leerInt(teclado); try{ Figura aRecuperar= g.recuperar(indice); System.out.println("Recuperada la Figura "+aRecuperar+" de la posición "+indice+" del Grupo"); } catch(ElementoNoEncontrado e){ System.out.println(e); } )))) ) S 0 D S !) !) R ) ) ) GD EJ TT# U 8 EJ @ 2 EG? F 5 #1 K J G? TTTK J G? S H (A * 2 0 D S EF GD < > D > R ? F !) ) EJ @ # EG? R ) * E V-G > O O 2 * 8 > R ? !E I ! >2 /G D H F !) ) EP 8 > $! H !E 2 * 8 (G D F !) ) EP 8 ! X W G? H ?"! S H 0! ) 2 K J G? EP * W L )X V- EP L () G? W G? I EGLW G) ! $! ,! ! E" / ! YQG public class Primitiva { private Integer numeros[]; private int numGuardados; public Primitiva(){ … } public void guardaNumero(Integer n) throws ExepcionNoDuplicado, ExcepcionNoFueraRango, … } } ExepcionNoDuplicado ExcepcionNoFueraRango ExcepcionCompleta ' ! ) ' $! ExcepcionCompleta $! ' $! & ! { ! " $! ! 2 ? ! " @ public class ImposibleAbrirBD extends Exception { public ImposibleAbrirBD() { super(); } public ImposibleAbrirBD(String msg) { super(msg); } } public class BaseDeDatos { public BaseDeDatos(String nombre) { ... } private void abrir() throws ImposibleAbrirBD { … } public void inicializar() throws ImposibleAbrirBD { abrir(); ... } } public class TestBaseDeDatos { public static void main (String args[]) throws ImposibleAbrirBD { BaseDeDatos bd = new BaseDeDatos(“MiBD”); bd.inicializar(); } }F ! ! 5 " > @ " @ ! 1 )F @ 2 & ' " > ! )