From f18470dc0beecf46d7de908948db83b53b20418f Mon Sep 17 00:00:00 2001 From: luiscarlosjunior Date: Fri, 25 Jun 2021 21:54:36 -0300 Subject: [PATCH] =?UTF-8?q?Adiciona=20novo=20documento=20sobre=20exce?= =?UTF-8?q?=C3=A7=C3=B5es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "Programa\303\247\303\243o/README.md" | 12 --- programming/java/Apostila/07-excecoes.md | 77 ++++++++++++++++++++ programming/java/Apostila/img/throwable.png | Bin 0 -> 15492 bytes 3 files changed, 77 insertions(+), 12 deletions(-) delete mode 100644 "Programa\303\247\303\243o/README.md" create mode 100644 programming/java/Apostila/07-excecoes.md create mode 100644 programming/java/Apostila/img/throwable.png diff --git "a/Programa\303\247\303\243o/README.md" "b/Programa\303\247\303\243o/README.md" deleted file mode 100644 index 067eb9d..0000000 --- "a/Programa\303\247\303\243o/README.md" +++ /dev/null @@ -1,12 +0,0 @@ - -# Repositório para as disciplinas de programação - -## Java - -## PHP - -## Python - -## C# - -## C++ diff --git a/programming/java/Apostila/07-excecoes.md b/programming/java/Apostila/07-excecoes.md new file mode 100644 index 0000000..a0ccd3d --- /dev/null +++ b/programming/java/Apostila/07-excecoes.md @@ -0,0 +1,77 @@ +# Tratamento de execeções + +Um dos pontos fortes da maioria das linguagens de programaçao e a possibilidade +de manipular e tratar exceções. A linguamge Java não é diferente e é um dos +mecanismos poderosos para lidar com os exceções em tempo de execução +para que o fluxo normal da aplicação não seja afetado. +Aqui será apresentado as exceções em Java, seu tipo e a diferença entre exceções +verificadas e não verificadas. + +## O que é exceção em Java + +Exceções são erros ou imprevistos que podem ocorrer durante a execução de um programa Java. +Nesses casos, o gerenciador o compilador aborta a execução e procura uma área de exceções; +Para isso a linguagem Java fornece recursos para lidar com essas exceções conhecida como +manipulação de exceção. Usando a manipulação de exceção, podemos testar e evitar +que o programa pare derrepende. Ao manipular essas exceções garantimos que nosso programa +seja mais robusto. + +## O que é tratamento de exceção +O tratamento de exceções é uma maneira de lidar com erros em tempo de execução, +como _**ClassNotFoundException, IOException, SQLException, RemoteException**_, etc. +Dessa forma podemos ter uma resposta mais personalizada e objetivo ao trabalhar com usuário +finais + +## Vantagem do tratamento de exceções +Há diversas vantagens em manter um tratamento de exceções no programa, umas das vantagens +do manuseio de exceções é manter o fluxo normal da aplicação. +Quando é identificado uma exceção normalmente é interrompido o fluxo normal do aplicativo, +por isso usamos o manuseio de exceções. + +### Vamos fazer um cenário: + +```java +declaração 1; +declaração 2; +declaração 3; +declaração 4; +declaração 5; //exceção ocorre +declaração 6; +declaração 7; +declaração 8; +declaração 9; +declaração 10; +``` + +No exemplo acima, vamos supor que haja 10 declarações no programa e que ocorra uma +exceção na declaração 5, o resto do código não será executado, ou seja, a declaração 6 a 10 +não será executada. Dependendo de como for feito o tratamento de exceção, o resto da +declaração será executada. É por isso que usamos o manuseio de exceções em Java. + +## Tipos de exceções em Java + +A seção abaixo foi retirado do site [Java Point](https://www.javatpoint.com/exception-handling-in-java#:~:text=In%20Java%2C%20an%20exception%20is%20an%20event%20that,errors%20such%20as%20ClassNotFoundException%2C%20IOException%2C%20SQLException%2C%20RemoteException%2C%20etc.) + +Em Java há principalmente dois tipos de exceções: verificadas e desmarcadas. Aqui, um erro +que acontece dentro do sistema é considerado como a **exceção não verificada**. +De acordo com a **Oracle**, existem três tipos de exceções: + +1. Exceção verificada +2. Exceção não verificada +3. erro + +1) Exceção verificada +As classes que herdam diretamente a classe _**Throwable**_, exceto +__**RuntimeException**__ e __**Error**__ são conhecidas como exceções verificadas, +por exemplo, __**IOException, SQLException **__ etc. As exceções verificadas são +verificadas na hora do compilado. + +2) Exceção não verificada +As classes que herdam o __**RuntimeException**__ são conhecidas como exceções não +verificadas, por exemplo, __**AithmeticException, NullPointerException, ArrayIndexOutOfBoundsException **__ +etc. As exceções não verificadas não são verificadas na hora do compilado, +mas são verificadas no tempo de execução. + +3) Erro +O erro é irrecuperável, por exemplo, __**OutOfMemoryError, VirtualMachineError, AssertionError**__ etc. + diff --git a/programming/java/Apostila/img/throwable.png b/programming/java/Apostila/img/throwable.png new file mode 100644 index 0000000000000000000000000000000000000000..a9120bf5027d72c2721e44404fe4bd2a0832ebfd GIT binary patch literal 15492 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 ZY-PhfNx+U1?Y$g?x{9W9(VeF+{|}XE>gNCe literal 0 HcmV?d00001