LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS TRATAMENTO DE EXCEÇÕES Prof. Thiago Pereira Rique [email protected] http://thiagorique.wordpress.com/ AGENDA Introdução Exemplo de divisão por zero sem tratamento de exceções Exemplo de tratamento de ArithmeticExceptions e InputMismatchExceptions Bloco finally Exemplos de exceções Mecanismos de exceções Criando suas próprias classes de exceções Criando suas próprias classes de exceções – estendendo o exemplo INTRODUÇÃO Tratamento de exceções Programas robustos e tolerantes a falhas Classes que estendem Throwable EXEMPLO DE DIVISÃO POR TRATAMENTO DE EXCEÇÕES ZERO SEM EXEMPLO DE DIVISÃO POR TRATAMENTO DE EXCEÇÕES ZERO SEM EXEMPLO DE DIVISÃO POR TRATAMENTO DE EXCEÇÕES ZERO SEM EXEMPLO DE DIVISÃO POR TRATAMENTO DE EXCEÇÕES ZERO SEM EXEMPLO DE DIVISÃO POR TRATAMENTO DE EXCEÇÕES ZERO SEM EXEMPLO DE TRATAMENTO ARITHMETICEXCEPTIONS INPUTMISMATCHEXCEPTIONS DE E EXEMPLO DE TRATAMENTO ARITHMETICEXCEPTIONS INPUTMISMATCHEXCEPTIONS DE E EXEMPLO DE TRATAMENTO ARITHMETICEXCEPTIONS INPUTMISMATCHEXCEPTIONS DE E EXEMPLO DE TRATAMENTO ARITHMETICEXCEPTIONS INPUTMISMATCHEXCEPTIONS DE E BLOCO FINALLY Opcional BLOCO FINALLY finally é executado Se exceção for lançada no try correspondente. Se o bloco try terminar (return, break ou continue). Alcançando chave de fechamento do try. finally não é executado System.exit Liberação de recursos EXEMPLOS DE EXCEÇÕES Acesso a um array fora dos limites; Divisão por zero; Incompatibilidade de tipos; Esgotamento de memória; Saldo insuficiente para realizar um saque; Conta não encontrada. MECANISMOS DE EXCEÇÕES Ao invés de códigos, exceções! Exceções são objetos de classes que estedem (extends) a superclasse Exception. Subclasses de Exception são definidas para Fornecer informações sobre o problema/falha/erro. Diferenciar os possíveis tipos de falha que podem ocorrer. CRIANDO SUAS PRÓPRIAS CLASSES EXCEÇÃO A classe SaldoInsuficienteException DE CRIANDO SUAS PRÓPRIAS EXCEÇÃO A classe Conta_Bancaria CLASSES DE CRIANDO SUAS PRÓPRIAS EXCEÇÃO A classe Testa_Conta_Bancaria CLASSES DE CRIANDO SUAS PRÓPRIAS EXCEÇÃO A classe Testa_Conta_Bancaria CLASSES DE CRIANDO SUAS PRÓPRIAS CLASSES DE EXCEÇÃO CRIANDO SUAS PRÓPRIAS CLASSES DE EXCEÇÃO CRIANDO SUAS PRÓPRIAS CLASSES DE EXCEÇÃO – ESTENDENDO O EXEMPLO Classe SaldoInsuficienteException CRIANDO SUAS PRÓPRIAS CLASSES DE EXCEÇÃO – ESTENDENDO O EXEMPLO Classe ContaNaoEncontradaException CRIANDO SUAS PRÓPRIAS CLASSES DE EXCEÇÃO – ESTENDENDO O EXEMPLO Classe ContaBancaria CRIANDO SUAS PRÓPRIAS CLASSES DE EXCEÇÃO – ESTENDENDO O EXEMPLO Classe ContaBancaria CRIANDO SUAS PRÓPRIAS CLASSES DE EXCEÇÃO – ESTENDENDO O EXEMPLO Interface RepositorioDeContas CRIANDO SUAS PRÓPRIAS CLASSES DE EXCEÇÃO – ESTENDENDO O EXEMPLO Classe RepositorioDeContasArray CRIANDO SUAS PRÓPRIAS CLASSES DE EXCEÇÃO – ESTENDENDO O EXEMPLO Classe RepositorioDeContasArray CRIANDO SUAS PRÓPRIAS CLASSES DE EXCEÇÃO – ESTENDENDO O EXEMPLO Classe Banco CRIANDO SUAS PRÓPRIAS CLASSES DE EXCEÇÃO – ESTENDENDO O EXEMPLO Classe TestaContaBancaria CRIANDO SUAS PRÓPRIAS CLASSES DE EXCEÇÃO – ESTENDENDO O EXEMPLO Classe TestaContaBancaria CRIANDO SUAS PRÓPRIAS CLASSES DE EXCEÇÃO – ESTENDENDO O EXEMPLO Classe TestaContaBancaria CRIANDO SUAS PRÓPRIAS CLASSES DE EXCEÇÃO – ESTENDENDO O EXEMPLO Classe TestaContaBancaria REFERÊNCIA DEITEL, H.M; Java Como Programar. Ed. Pearson, 8ª ed, 2010.