Escolar Documentos
Profissional Documentos
Cultura Documentos
Manejo de Excepciones
Taller
class Base {
public void foo() throws FileSystemException {
throw new FileSystemException("");
}
}
class Deri extends Base {
/* escribir la definición aquí */
}
¿Cuáles de las siguientes definiciones de sobre-escritura del método foo() en la clase Deri
son compatibles con la definición del método foo() en la clase base? Seleccione todas las
definiciones del método foo() que podrían compilar sin errores al colocar ese método en /*
escribir la definición aquí */?
Para los siguientes temas cree un nuevo proyecto en Netbeams. El nombre del proyecto debe ser
Apellido1Apellido2_t7.
Realice cada ejercicio en un nuevo paquete.
Tema 2
Parte 1
Cree una clase llamada LeerCaracter.
Dentro de la clase LeerCaracter haga lo siguiente
1. Escriba un método estático llamado “carcaterEn” en Java que realice la siguiente acción:
Recibe como parámetros una cadena (String) y un entero (int).
Si el entero está entre 0 y la longitud menos 1 de la cadena devuelve el carácter en la
posición correspondiente. En caso contrario, construye y lanza una excepción de tipo
IllegalArgumentException con el mensaje ‘Índice fuera de rango’
public static char carcaterEn(String cadena, int indice) throws
IllegalArgumentException
{
//su codigo aqui
}
Recuerde: El método no captura la excepción, sino que la lanza para ser manejada por un
método más adelante.
Preguntas:
a) ¿Cuál es la salida del programa con los datos de prueba “Prueba 1”? ¿Por qué? (incluya
una captura de pantalla del programa en ejecución con los datos ingresados)
b) ¿Cuál es la salida del programa con los datos de prueba “Prueba 2”? ¿Por qué? (incluya
una captura de pantalla del programa en ejecución con los datos ingresados)
c) ¿Cuál es la salida del programa con los datos de prueba “Prueba 3”? ¿Por qué? (incluya
una captura de pantalla del programa en ejecución con los datos ingresados)
d) ¿Qué tipo de excepción es IllegalArgumentException?
e) ¿Cuándo se declaró el método caracterEn al final de la firma del método se agregó throws
IllegalArgumentException. ¿Se produciría un error de sintaxis al omitir está línea de la
firma? ¿Sí o No y Por qué?
f) ¿Qué pasa sino capturamos la excepción que lanza el método carcaterEn´ en el main y se
introduce un índice fuera de rango?.
Parte 2
Preguntas:
a) ¿Por qué Java no nos obliga a manejar la excepción InputMismatchException?.
Modifique el código anterior para que en el mismo catch Block capture todas las
excepciones que se pueden producir en el tema 3.
Debe mostrar un mensaje apropiado y el tipo de excepción que se lanzó
Puede definir sus propias clases de excepción, pero cada clase debe ser una clase derivada de una
clase de excepción ya existente (ya sea de una de las bibliotecas estándar de Java o programadas por el
programador)
GUIDELINES
If you have no compelling reason to use any other class as the base class, use the class Exception
as the base class.
You should define two (or more) constructors, as described later in this list.
Your exception class inherits the method getMessage. Normally, you do not need to add any other
methods, but it is legal to do so.
You should start each constructor definition with a call to the constructor of the base class, such as
the following:
super("Sample Exception thrown!");
You should include a no-argument constructor, in which case the call to super should have a string
argument that indicates what kind of exception it is. This string can then be recovered by using the
getMessage method.
You should also include a constructor that takes a single string argument. In this case, the string
should be an argument in a call to super. That way, the string can be recovered with a call to
getMessage.
Tema 3 (paquete3)
En la clase LeerCaracter
o Defina un método llamado pedirCadena que pida al usuario por teclado una cadena
de caracteres y retorne la cadena ingresada. Este método debe validar si la cadena es
valida. Una cadena es valida si contiene solo letras. Si la cadena no es valida el metodo
lanza la excepción CadenaNoValidaExcepcion.
o Modifique el método main para que invoque la método pedirCadena para obtener la
cadena desda la cual vamos a leer el caracter.
Preguntas: