Programa Cafeteria Simule o atendimento de uma pessoa que chega em uma cafeteria para tomar um cafezinho. Ele pode reagir furiosamente se: o café estiver frio ou muito quente. Estas condições são excepcionais e devem ser tratadas como exceções. 1) Assim sendo, produza classes de exceções que obedeçam a seguinte hierarquia: Throwable | | \/ Exception | | \/ TempExcep / \ / \ / \ FrioExcep QuenteExcep A classe FrioExcep e QuenteExcep provêem, respectivamente, o comportamento de exceções para café muito frio e muito quente. 2) Projete uma classe Cliente que tenha um método bebeCafe(XicaraCafe xic) que lança exceções do tipo FrioExcep e QuenteExcep. Café frio é aquele cuja temperatura é abaixo de 65 graus. Café muito quente é aquele com mais de 85 graus 3) A classe XicaraCafe possui: atributo: temp, que indica a temperatura da xicara de cafe metodos: setTemp(int temp) e getTemp() 4) Escreva uma classe Demo1 que aceite como argumento via linha de comando uma temperatura. Voce deve tratar isso como uma excecao e verificar se o argumento passado é realmente um inteiro. Dica: use o Wrapper de integer e coloque o comando dentro de um try.. (Integer.parseInt(args[0])... Se passar incólume, crie entao uma xicara de cafe e atualize a temperatura passada como argumento. Crie tambem um cliente e sirva o café! Veja o que acontece.... Servir o café significa: Crie uma classe CafeVirtual (que é a cafeteria). Ela possui um método serveCliente(Cliente cli, XicaraCafe xic). O metodo deve monitorar a ação de beber café do cliente. O que isso siginifca????? -> o cliente bebe o café e se algo der errado uma excecao será levantada! O metodo serveCliente deve entao identificar cada excecao e emitir uma mensagem de erro perntinete pra cada caso. 5) imagine agora que voce queira passar informação no objeto de excecao. Ao tratar uma exceção, o exception handler tem um objeto de excecao em mãos, certo? este objeto pode trazer uma string consigo, por exemplo. Assim, o programa cliente pode além de tomar as atitudes devidas, reportar esta string que foi trazida junto com o objeto de exceção. Exemplo. Suponha que alem de muito frio ou muito quente, o café possa ter gosto esquisito. Crie uma classe GostoEstranhoExcep. Para que ela incorpore uma string, saiba que por ser herdeira da classe Exception, esta classe pode recuperar a string invocando o metodo getMessage() através do objeto de exceção. A string pode ser incorporada ao objeto de excecao via construtor. Implemente a classe GostoEstranhoExcep e acrescente esse comportamento ao CafeVirtual..