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