Programación 3

Universidad de Alicante, 2021–2022

Ejercicios sobre excepciones

División por cero

Tenemos la siguiente clase

que invocamos desde código cliente como el siguiente:

Queremos controlar el posible error de dividir por cero mediante una excepcióin de usuario. Define dicha excepción, llamada ExcepcionDividirPorCero, que sea lanzada por el método Division.div() al intentar dividir por cero.

Modifica el código cliente para que trate la excepción.

Posible solución: DivisionPorCero.zip

Pila de enteros

Define una clase PilaEnteros que gestione una pila de enteros, almacenándolos internamente como un array de enteros. La idea es ir almacenando los elementos consecutivamente en el array, de manera que el último elemento guardado en el array es considerado la cima de la pila.

La pila se crea con una capacidad máxima. Define la clase PilaEnteros con al menos un constructor que acepte como argumento el tamaño máximo que tendrá la pila, un método void apilar(int) que permita apilar un entero y otro método int cima() que devuelva la cima de la pila (o sea, el último entero apilado).

En esta clase se pueden producir dos tipos de errores:

  1. Que intentemos apilar más elementos de los que caben en la pila.
  2. Que queramos obtener la cima de la pila cuando está vacía.

Queremos que la pila controle su desbordamiento al intentar apilar más elementos de los que admite mediante una excepción de usuario ExcepcionDesbordamiento. Por otro lado, el método cima() deberá lanzar una excepción de usuario, llamada ExcepcionPilaVacia cuando se le invoque sobre una pila vacía.

Implementa un programa principal de prueba que compruebe el correcto funcionamiento de la clase, capturando las excepciones cuando

  1. intenta obtener la cima de una pila vacía
  2. intenta apilar más elementos de los permitidos. Asegúrate de que se capture la excepción en cuanto se produzca, dejando de intentar apilar el resto de elementos que sobran.
Clase PilaEnteros (sin excepciones)