Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouRayssa Celeste Alterado mais de 9 anos atrás
1
Prof. Roberto Rosa robertorsci@gmail.com Aula 8
2
A partir de agora vamos aprender como ver qual é o erro que está acontecendo em nosso projeto. Para isso, a primeira coisa que precisamos entender é como utilizar os blocos tratadores, no caso o "try catch".
3
Quando criamos um método em alguma linguagem de programação o mesmo pode não estar apto para resolver ou detectar alguma falha que venha a acontecer. As exceções são lançadas para sinalizar alguma falha que tenha ocorrido. Tal lançamento causa uma interrupção abrupta na execução do sistema.
4
A maior parte das linguagens de programação(principalmente as Orientadas a Objetos) tem suporte para a utilização de exceções. O Java, PHP, por exemplo são bons exemplos de linguagens com suporte ao tratamento de Exceções.
5
Também podemos lançar exceções ou criar as nossas próprias exceções. O Java por exemplo nos dá suporte para: Representar uma exceção* Uma forma para lançar a exceção (throw/throws) Uma forma para tratar a exceção (try-catch-finally) *No caso do Java as exceções são representadas por classes.
6
Exceções verificadas subclasse de Exception utilizadas para falhas iniciais onde a recuperação talvez seja possível
7
Exceções não-verificadas subclasse de RuntimeException utilizadas para falhas não-antecipadas onde a recuperação não é possível
8
A classe Throwable é o "vô" de todas as classes que representam um erro ou uma exceção. A partir dele podemos utilizar os principais métodos para saber o que aconteceu de erro, problema, etc. A imagem a seguir ilustra qual é a hierarquia básica das Exceções na linguagem Java em especial.
9
Hierarquia de Exceções
10
Principais métodos No Java são três os principais métodos que relatam a exceção ocorrida, são eles: void printStackTrace(): Lista a seqüência de métodos chamados até o ponto onde aj exceção foi lançada. String getMjessage() - Retorna uma mensagem que indica o que ocorreu na exceção. toString() - Esse método retorna uma breve descrição da exceção que ocorreu.
11
Podemos lançar exceções a partir dos métodos. Para lançar uma exceção a partir de um método deve ser utilizada a cláusula throws, conforme Figura:
12
Exemplo de lançamento de exceção através da cláusula throws
13
Clientes que capturam uma exceção devem proteger a chamada com um bloco try. Qualquer número de instruções pode ser incluído em um bloco try. A cláusula catch tentará capturar exceções geradas por qualquer instrução dentro do try precedente.
14
Exemplo de blocos tratadores básico
15
Podemos também utilizar na maioria das linguagens 2 ou mais blocos de "catch", conseguindo assim tratar 2 ou mais exceções a partir de um único "try". A figura a seguir mostra como ficaria um "try" com dois tratamentos de exceções especializados e o terceiro é um tratamento de exceção genérico para qualquer tipo de exceção que não se enquadre nos 2 catchs iniciais.
16
Quando ocorre uma exceção, o java procura um bloco tratador adequado. Os "catch" são checados em sequência, ou seja, o primeiro catch que estiver tratando a exceção que ocorreu é executado. Após a execução do catch, se houver outros catchs os mesmos não são executados, porém o software continua com a sua execução normal após o último bloco tratador.
17
Sempre cuide a ordem ao declarar os "catch's". Nunca podemos colocar um bloco catch tratando Exception antes dos tratamentos de outras Exceptions, isso porque Exception é pai de todas as outras exceções.
18
Exemplo de captura com mais de 1 catch
19
No Java a partir do JDK7 é possível a utilização de multi-catch, ou seja, podemos inserir 2 ou mais exceções em um único catch.
20
Exemplo de blocos tratadores com multi-catch
21
Também podemos colocar dentro de um bloco try outro trycatch, fazendo o tratamento de exceções de forma aninhada. Ao tratar de forma aninhada podemos individualizar e especializar as mensagens de erro, fazendo com que o usuário identifique exatamente o que ele realmente errou.
22
A cláusula finally é opcional, ou seja, você pode criar um bloco tratador try-catch sem finally. Se você optar por colocar a instrução finally ela será sempre executada, mesmo que não ocorra uma exceção dentro do bloco try.
23
Se ocorrer uma exceção no try, e não for capturada por nenhum catch, mesmo assim o finally é executado Se ocorrer uma exceção e a mesma for capturadda por algum catch, mesmo assim o finally é executado. Na prática o finally pode e deve ser utilizado para fechar conexões de rede, conexão com o banco de dados, escrita e leitura de arquivos, entre outros.
24
Exemplo de blocos tratadores com finally
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.