Buscar

POO 13 - tratamento de exceções_ try e catch

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Tratamento de exceções
Exceções
As exceções ocorrem quando algo imprevisto acontece, elas podem ser provenientes de erros de lógica ou acesso a recursos que talvez não estejam disponíveis.
Exceções
Uma exceção indica um problema que ocorre quando um programa é executado. O nome “exceção” sugere que o problema ocorre com pouca frequência — se a “regra” é que uma instrução normalmente executa corretamente, então o problema representa a “exceção à regra”. O tratamento de exceção ajuda a criar programas tolerantes a falhas que podem resolver (ou tratar) exceções.
Em muitos casos, isso permite que um programa continue a executar como se nenhum problema fosse encontrado.
Exemplos de exceções
Fatores externos
Tentar abrir um arquivo que não existe.
Tentar fazer consulta a um banco de dados que não está disponível.
Tentar escrever algo em um arquivo sobre o qual não se tem permissão de escrita.
Tentar conectar em servidor inexistente.
Erro de lógica
Tentar manipular um objeto que está com o valor nulo.
Dividir um número por zero.
Tentar manipular um tipo de dado como se fosse outro.
Tentar utilizar um método ou classe não existentes
Try and catch
Try
• Um bloco try inclui o código que talvez lance (throw) uma exceção e o código que não deve executar se essa exceção ocorrer.
• As exceções podem emergir por meio de código explicitamente mencionado em um bloco try, por chamadas para outros métodos ou até mesmo pelas chamadas de método profundamente aninhadas iniciadas pelo código no bloco try.
Catch
• Um bloco catch inicia com a palavra-chave catch e um parâmetro de exceção seguido por um bloco de código que trata a exceção. Esse código executa quando o bloco try detecta a exceção.
• Pelo menos um bloco catch ou finally deve seguir imediatamente o bloco try.
• Um bloco catch especifica entre parênteses um parâmetro de exceção identificando o tipo de exceção a tratar. O nome do parâmetro de exceção permite ao bloco catch interagir com um objeto de exceção capturado.
• Uma exceção não capturada é uma exceção que ocorre para a qual não há nenhum bloco catch correspondente. Uma exceção não capturada fará com que um programa termine antes da hora se esse programa contiver somente uma thread. Caso contrário, somente a thread em que a exceção ocorreu terminará. O restante do programa será executado, mas possivelmente com resultados adversos.
Tratamento
• Se ocorrer uma exceção em um bloco try, o bloco try termina imediatamente e o programa transfere o controle ao primeiro bloco catch com um tipo de parâmetro que corresponde ao tipo de exceção lançada.
• Depois que uma exceção é tratada, o controle de programa não retorna ao ponto de lançamento, porque o bloco try expirou. Isso é conhecido como modelo de terminação do tratamento de exceção.
• Se houver múltiplos blocos catch correspondentes quando uma exceção ocorrer, somente o primeiro é executado.
• A cláusula throws especifica uma lista separada por vírgula das exceções que o método pode lançar, e aparece após a lista de parâmetros do método e antes do corpo do método.
Tratando exceções
Para tratar as exceções em Java são utilizados os comandos try e catch.
Sintaxe
try {
 //trecho de código que pode vir a lançar uma exceção
}
catch(tipo_exceçao_1 e) {
 //ação a ser tomada
}
catch(tipo_exceçao_2 e) {
 //ação a ser tomada
}
catch(tipo_exceçao_n e) {
 //ação a ser tomada
}
Resumo
Para lidar com uma exceção, coloque qualquer código que possa lançar uma exceção em uma instrução try. O bloco try contém o código que pode lançar uma exceção, e o bloco catch contém o código que trata a exceção se uma ocorrer. Podem haver muitos blocos catch para tratar com diferentes tipos de exceções que podem ser lançadas no bloco try correspondente. 
Exemplo - null
public class aumentaFrase {
 public static void main(String args[])
 {
 String frase = null;
 String novaFrase = null;
 novaFrase = frase.toUpperCase();
 System.out.println("Frase antiga: "+frase);
 System.out.println("Frase nova: "+novaFrase);
 }
}
ocorrerá a exception Exception in thread "main" java.lang.NullPointerException
at aumentaFrase.main(aumentaFrase.java:15)
Exemplo null
public static void main(String args[]) {
 String frase = null;
 String novaFrase = null;
 try {
 novaFrase = frase.toUpperCase();
 }
 catch(NullPointerException e) //CAPTURA DA POSSÍVEL exceção. {
 //TRATAMENTO DA exceção
 System.out.println("O frase inicial está nula, para solucional tal o problema, foi lhe atribuito um valor default.");
 frase = "Frase vazia";
 novaFrase = frase.toUpperCase();
 }
 System.out.println("Frase antiga: "+frase);
 System.out.println("Frase nova: "+novaFrase);
}
comando finally
try {
 //trecho de código que pode vir a lançar uma exceção
}
catch(tipo_exceçao_1 e) {
 //ação a ser tomada
}
catch(tipo_exceçao_2 e) {
 //ação a ser tomada
}
catch(tipo_exceçao _n e) {
 //ação a ser tomada
}
finally {
 //ação a ser tomada
}
public class aumentaFrase {
 public static void main(String args[]) {
 String frase = null;
 String novaFrase = null;
 try {
 novaFrase = frase.toUpperCase();
 }
 catch(NullPointerException e) {
 System.out.println("O frase inicial está nula, para solucional tal o problema, foi lhe atribuito um valor default.");
 frase = "Frase vazia";
 }
 finally
 {
 novaFrase = frase.toUpperCase();
 }
 System.out.println("Frase antiga: "+frase);
 System.out.println("Frase nova: "+novaFrase);
 }
}
Referência
Devmedia - Tratando exceções em Java
https://www.devmedia.com.br/tratando-excecoes-em-java/25514
DEITEL, P.H. - Java como programar. 10ª Edição. São Paulo: Pearson, 2016

Continue navegando