Competencia: Desarrollo de Software (Nivel 1).
Descripcion de la actividad
Se han presentado en clases los elementos básicos relacionados con Excepciones en Java y complementariamente se ha publicado documentación vinculada con Excepciones que pueden ser definidas por el programador. Además se ha publicado un ejemplo (Ejemplo: Excepciones propias), donde se programó una excepción definida para un problema particular. En las presente actividad se busca que el estudiante revise este ejemplo y lo programe como parte de las actividades de aprendizaje.
Objetivo: Se espera que el estudiante evidencie haber revisado y programado el ejemplo en Netbeans.
Inicio de actividad
Bonus Point nº5
“Excepciones Propias”
Codigo Fuente.
import java .util.*;
public class MostrCualquierNombre {
public static void main(String[] args) {
String nombres[]=new String[3];
try{
Scanner leer= new Scanner(System.in);
System.out.print("ingrese nombre 1:");
nombres[0]=leer.next();
verificarNombre(nombres[0]);
System.out.print("ingrse nombre 2:");
nombres[1]=leer.next();
verificarNombre(nombres[1]);
System.out.print("ingrse nombre 3:");
nombres[1]=leer.next();
verificarNombre(nombres[1]);
System.out.println(nombreAlAzar(nombres));
}
catch(ExceptionSoloLetras e){
System.out.println("Exception:"+e.getMessage());
}
finally {System.out.println("fin programa");}
}
public static void verificarNombre(String nombreln) throws ExceptionSoloLetras{
char letra = 'o' ;
for(int i=0; i <nombreln.length();i++){
letra=nombreln.charAt(i);
System.out.println("letra: " + letra);
if(!Character.isLetter(letra)){
String mensaje= " >> Caracter"+letra+" no puede ir dentro del nombre: "+ nombreln +" \nSolo se permiten palabras que contienen letras.<<\n";
throw new ExceptionSoloLetras(mensaje);
}
}
}
public static String nombreAlAzar(String[]names){
int azar=(int) Math.floor(Math.random()*3);
System.out.println(azar);
return names[azar];
}}
package mostrcualquiernombre;
class ExceptionSoloLetras extends Exception {
ExceptionSoloLetras(String msg) {
super (msg);
}
}
Captura de pantalla.