Skip to content

Commit b3a50a4

Browse files
committed
README.md
1 parent 6803adf commit b3a50a4

File tree

1 file changed

+80
-4
lines changed

1 file changed

+80
-4
lines changed

README.md

Lines changed: 80 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
<h2>Visão Geral</h2>
32
<ul>
43
<li> Exceção é um evento que interrompe o fluxo normal de processamento de uma classe.
@@ -11,6 +10,83 @@
1110
</li>
1211
</ul>
1312

14-
<p align="center">
15-
<img src="https://i.ibb.co/28mC8gY/2021-09-30-09-28.png" alt="2021-09-30-09-28" border="0" width="600" height="400">
16-
</p>
13+
<div align="center">
14+
<img src="https://i.ibb.co/VjT23Rr/amoTu.png" alt="amoTu" border="0" width="400" height="600"></div>
15+
<h3>Erro</h3>
16+
<ul>
17+
<li>Usado pela JVM, serve para indicar quando existe algum problema de recurso do programa, tornando a execução impossível de continuar.</li>
18+
<li>O “Erro” é algo que não pode mais ser tratado, ao contrário da “Exceção” que trata seus erros, pois todas as subclasses de Exception (menos as subclasses RuntimeException) são exceções que obrigatóriamente devem ser tratadas.</li>
19+
</ul>
20+
21+
<h3>Uchecked Exception</h3>
22+
<ul>
23+
<li>Herdam da classe <em>RuntimeException</em> ou da classe <em>Error</em>.</li>
24+
<li>O compilador não verifica o código para ver se a exceção foi capturada ou declarada.</li>
25+
<li>Se uma exceção não-verificada ocorrer e não tiver sido capturada, o programa terminará ou executará com resultados inesperados.</li>
26+
<li>Em geral, podem ser evitadas com uma codificação adequada.</li>
27+
</ul>
28+
29+
<h3>Checked Exception</h3>
30+
<ul>
31+
<li>As exceções que são herdadas da classe <em>Exception</em>, mas não de <em>RuntimeException</em>.</li>
32+
<li>O compilador impõe um requisito do tipo "capturar ou declarar".</li>
33+
<li>O compilador verifica cada chamada de método e declaração de método para determinar se o método lança (<em>throws</em>) exceções verificadas.</li>
34+
<li>Se lançar, o compilador assegura que a exceção verificada é capturada ou declarada em uma cláusula throws.
35+
<li>Caso não capturada nem declarada, ocorre um erro de compilação.
36+
</li>
37+
</ul>
38+
39+
<h3>Exception Personalizada</h3>
40+
<ul>
41+
<li>Programadores podem achar útil declarar suas próprias classes de exceção.</li>
42+
<li>Essas Exceptions são específicas aos problemas que podem ocorrer quando outro programador empregar suas classes reutilizáveis.
43+
</li>
44+
<li>Uma nova classe de exceção deve estender uma classe de exceção existente que assegura que a classe pode ser utilizada com o mecanismo de tratamento de exceções, logo essas Exceções customizadas são derivadas da classe Exception.</li>
45+
<li><em>Importante</em>: Antes de criar a nossa própria exceção, é recomendado verificar se já existe alguma exceção na biblioteca Java que já nos forneça o que precisamos. Afinal, não queremos reinventar a roda!</li>
46+
</ul>
47+
48+
<h3>Blocos try/catch/finally</h3>
49+
<ul>
50+
Bloco <strong><em>try</em></strong>:
51+
<li>Região onde se encontra o código que queremos verificar se irá ou não lançar uma exceção.</li>
52+
<li>Caso ocorra uma exceção em algum ponto, o restante do código contido no bloco <em>try</em> não será executado.</li>
53+
<li>O bloco <em>try</em> não pode ser declarado sozinho, por tanto, precisa estar seguido de um ou vários blocos <em>catch</em> e/ou de um bloco <em>finally</em>.</li>
54+
</ul>
55+
<ul>
56+
Bloco <strong><em>catch</em></strong>:
57+
<li>Região onde se encontra o possível tratamento da exceção. Isso significa que só será executado caso o bloco <em>try</em> apresentar alguma exceção.</li>
58+
<li>Recebe como argumento a classe ou subclasse da possível exceção.</li>
59+
<li>No seu escopo ficam as instruções de como tratar essa exceção.</li>
60+
<li>Pode haver mais de um bloco <em>catch</em>, porém, será executado apenas o primeiro bloco que identificar a exceção.</li>
61+
<li><em>Importante</em>: Caso você utilize mais de um <em>catch</em> e houver exceções de uma mesma hierarquia de classes, certifique-se que a classe mais genérica esteja como argumento do primeiro <em>catch</em>. Caso contrário, qualquer exceção sempre cairá neste primeiro <em>catch</em>, assim fazendo com que a exception mais específica não seja verificada.</li>
62+
</ul>
63+
<ul>
64+
Bloco <strong><em>finally</em></strong>:
65+
<li>Este bloco é opcional, mas caso seja construído, quase sempre será executado. (A menos que seja forçada sua parada, por exemplo, com um System.exit(0), no <em>catch</em>)</li>
66+
<li>Dentro do bloco finally, poderá conter outros blocos try, catch, bem como outro finally.</li>
67+
</li>Geralmente utilizado quando precisamos executar algum código independente se ocorrer exception ou não.</li>
68+
</ul>
69+
70+
<h3>Cláusulas throw e throws</h3>
71+
<ul>
72+
Cláusula <strong><em>trows</em></strong>
73+
<li>Usada na assinatura do método.</li>
74+
<li>Necessária apenas para exceções checked (nosso caso de estudo)</li>
75+
<li>Informa ao chamador que este método pode lançar uma das exceções listadas no escopo do método. Isso obriga a fazer a captura dessa exception (<em>try-catch</em>) ou relançar o <em>throws</em>. </li>
76+
</ul>
77+
<ul>
78+
Cláusula <strong><em>throw</em></strong>
79+
<li>É usada para lançar explicitamente uma exceção de um método ou de qualquer bloco de código.</li>
80+
<li>Usada principalmente para lançar exceções personalizadas</li>
81+
<em>Importante</em>:
82+
<li>O fluxo de execução "normal" do programa para imeditamente apos a execução da cláusula <em>throw</em>. O bloco <em>try</em> envolvente mais próximo é verificado para encontrar um bloco <em>catch</em> que corresponda ao tipo de exceção.</li>
83+
<li>Caso encontre essa correspondência, o controlado é transferido para esse bloco. Caso contrário, o próximo bloco <em>try</em> envolvente é verificado e assim por diante.</li>
84+
<li>Outro caso, é se nenhuma captura for encontrada, o manipulador da exceção padrão interromperá o programa.</li>
85+
86+
</ul>
87+
88+
<h2>Referências</h2>
89+
<ul>
90+
<li>https://www.devmedia.com.br/trabalhando-com-excecoes-em-java/27601</li>
91+
92+
</ul>

0 commit comments

Comments
 (0)