Excepções (Java)/Exercício 02: Arabian Nights

From Wiki**3

< Excepções (Java)

Este exercício saiu no teste de 2013/02/04.

Problema

Considere o enunciado das 1001 Noites e as seguintes alterações:

Os métodos grantWish não retornam qualquer valor (i.e., são de tipo void), mas lançam excepções (especializações de SomethingWrongWithGenieException):

  • NoMoreWishesException (no caso de um FriendlyGenie já ter realizado todos os desejos);
  • BadMoodException (no caso de um GrumpyGenie já ter realizado o primeiro desejo);
  • OopsException (lançada sempre que um RecyclableDemon realiza um desejo); e
  • TiredOhSoTiredException (no caso de um RecyclableDemon já ter sido reciclado).

Solução