Baixe o app para aproveitar ainda mais
Prévia do material em texto
Controle de Exceções Programação Orientada a Objetos EXCEÇÕES Controle de Exceções no Java - Exceptions Programação Orientada a Objetos Exceções ● Uma exceção é um evento, normalmente associado a um erro, e que ao ser disparado interrompe o fluxo normal de execução da aplicação. ● Exceções ocorrem durante a execução de aplicativos, como por exemplo divisões por zero, acesso a posições inválidas (em listas ou arrays). ● Como o próprio nome indica ... exceções são situações que não ocorrem com frequência Programação Orientada a Objetos Exceções (cont.) ● Erros são comuns em tempo de execução e as aplicações devem estar preparadas para tratá-los sem abortar o programa e perder os dados dos usuários. ● Tratar os erros é uma tarefa que demanda bastante codificação, tornando muitas vezes o código difícil de entender; ● O conceito de tratamento de exceções permite ao programador “lidar” com o problema (tratando-o) e permitindo ao programa continuar sua execução. ● Exceções habilitam programadores a escrever códigos robustos e tolerantes a falhas. Programação Orientada a Objetos Vantagens no uso de Exceções ● Separação do código regular (fluxo normal), do código de tratamento de exceções; ● Propagação de erros através dos métodos da pilha de chamadas (método 1, chama o método 2, que chama o método 3 ... somente um deles precisa se preocupar em tratar os erros); ● Agrupamento e diferenciação de erros (e seus respectivos tratamentos); ● Obrigatoriedade de tratamento (exceções não podem ser ignoradas); Programação Orientada a Objetos Exceções … exemplos ● A classe abaixo possui um método chamado “dividir” que devolve a divisão de um número por seu numerador. O que aconteceria se informasse 0 (zero) para o denominador? E se digitar “um” ao invés de 1? Programação Orientada a Objetos Tratamento de Exceções Bloco try ● Delimita o bloco de código que pode originar exceções; Bloco catch ● Bloco que define como determinada exceção deve ser tratada (o que deve acontecer se ela ocorrer); ● Não é necessário que todas as exceções possíveis sejam tratadas (pode-se utilizar uma superclasse de exceção para agrupar tratamentos ou propagá-la para outro tratador); Bloco finally ● Contém o código responsável pela finalização (fechamento de arquivos, liberação de recursos); ● É uma extensão do try, será executado havendo ou não erros Programação Orientada a Objetos Tratamento de Exceções Observe o tratamento .. try { //Código a ser exec. } catch (Erro1 e1) { //Código se ocorrer o erro 1 } catch (Erro2 e2) { //Código se ocorrer o erro 2 } finally { //Finalização ... //Código que será executado se //ocorrerem ou não erros } Programação Orientada a Objetos Propagando Exceções ● Nem sempre uma exceção é tratada localmente (ou seja, no local onde o erro pode acontecer) ... Uma exceção pode ser propagada ... ● Propagar uma exceção significa avisar o código que irá chamar o método onde o erro pode ocorrer que ele é um código que merece tratamento (que é propenso a uma determinada exceção). ● Uma exceção é propagada através do comando throws Programação Orientada a Objetos Propagando Exceções (cont..) ● Por que o código abaixo não compila? unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown thro ws F ileNo tFou ndEx cept ion Algumas construções de código exigem que exceções sejam tratadas ou propagadas Programação Orientada a Objetos Hierarquia de Exceções no Java ● A superclasse de toda exceção é a classe Throwable; ● Somente objetos filhos de Throwable podem ser tratados (try/catch/finally) ● Throwable se divide em – Error – representando situações anormais da JVM e de difícil recuperação; – Exception – representando situações anormais do programa e que podem ser capturadas e tratadas. Podem ser: ● Verificadas (checked) quando são geradas por situações não controladas pelo programa (um arquivo que não existe, por exemplo). Seu tratamento é exigido pelo compilador. ● Não Verificadas (unchecked) geralmente causadas por deficiências no código. Programação Orientada a Objetos Hierarquia de Exceções no Java Programação Orientada a Objetos Levantando Exceções ● A hierarquia de classes de exceções pode ser estendida de forma a criar novos tipos de exceções. ● Levantar uma exceção significa indicar que um erro ocorreu e precisa de tratamento ● Uma exceção é lançada através do comando throw Programação Orientada a Objetos Levantando Exceções (cont..) ● Nova exceção. ● Levantando (criando) a nova exceção.. Programação Orientada a Objetos Resumindo.. ● Exceções são um tipo especial de classe que a linguagem orientada a objetos oferece um tratamento diferenciado ... ● Em Java, as exceções ... – são representadas por classes – são lançadas pelo comando throw – são tratadas pela estrutura try-catch-finally – podem ser propagadas pelo comando throws; – podem ser verificadas pelo compilador ou não; Programação Orientada a Objetos Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16
Compartilhar