O Java lança palavra-chave é usado para declarar uma exceção. Fornece uma informação ao programador de que pode ocorrer uma exceção. Portanto, é melhor para o programador fornecer o código de tratamento de exceções para que o fluxo normal do programa possa ser mantido.
O tratamento de exceções é usado principalmente para lidar com as exceções verificadas. Se ocorrer alguma exceção não verificada, como NullPointerException, é culpa do programador não estar verificando o código antes de usá-lo.
css para negrito
Sintaxe de lançamentos Java
return_type method_name() throws exception_class_name{ //method code }
Qual exceção deve ser declarada?
Anos: Apenas exceção verificada, porque:
Vantagem do Java lança palavra-chave
Agora a exceção verificada pode ser propagada (encaminhada na pilha de chamadas).
Ele fornece informações ao chamador do método sobre a exceção.
Java lança exemplo
Vamos ver o exemplo da cláusula Java throws que descreve que exceções verificadas podem ser propagadas pela palavra-chave throws.
Testthrows1.java
import java.io.IOException; class Testthrows1{ void m()throws IOException{ throw new IOException('device error');//checked exception } void n()throws IOException{ m(); } void p(){ try{ n(); }catch(Exception e){System.out.println('exception handled');} } public static void main(String args[]){ Testthrows1 obj=new Testthrows1(); obj.p(); System.out.println('normal flow...'); } }Teste agora
Saída:
quem criou a escola
exception handled normal flow...
Regra: Se estivermos chamando um método que declara uma exceção, devemos capturar ou declarar a exceção.
Existem dois casos:
Caso 1: Tratar exceção usando bloco try-catch
Caso tratemos a exceção, o código será executado corretamente, independentemente de a exceção ocorrer durante o programa ou não.
Testthrows2.java
import java.io.*; class M{ void method()throws IOException{ throw new IOException('device error'); } } public class Testthrows2{ public static void main(String args[]){ try{ M m=new M(); m.method(); }catch(Exception e){System.out.println('exception handled');} System.out.println('normal flow...'); } }Teste agora
Saída:
exception handled normal flow...
Caso 2: Declarar Exceção
- Caso declaremos a exceção, se a exceção não ocorrer, o código será executado corretamente.
- Caso declaremos a exceção e a exceção ocorra, ela será lançada em tempo de execução porque lança não trata a exceção.
Vamos ver exemplos para ambos os cenários.
A) Se a exceção não ocorrer
Testthrows3.java
import java.io.*; class M{ void method()throws IOException{ System.out.println('device operation performed'); } } class Testthrows3{ public static void main(String args[])throws IOException{//declare exception M m=new M(); m.method(); System.out.println('normal flow...'); } }Teste agora
Saída:
contagem mysql
device operation performed normal flow...
B) Se ocorrer exceção
Testthrows4.java
import java.io.*; class M{ void method()throws IOException{ throw new IOException('device error'); } } class Testthrows4{ public static void main(String args[])throws IOException{//declare exception M m=new M(); m.method(); System.out.println('normal flow...'); } }Teste agora
Saída:
Diferença entre arremesso e arremesso
Clique em mim para detalhesQue) Podemos relançar uma exceção?
Sim, lançando a mesma exceção no bloco catch.