Objetivos
        
    
    
    
        
Criando uma Exception customizada
    
    
        
            
                Para criarmos nossa própria exceção, precisamos declarar uma classe que irá herdar a classe Exception 
                ou outra classe de exceção desejada como ArithmeticExection, ArrayIndexOutOfBoundException.
            
            Sintaxe 1
            
modificador_acesso class minha_excecao extends excecao_base
{
   //corpo
}
            
                No construtor de nossa exceção customizada, utilizamos um parâmetro para receber uma mensagem de erro 
                customizada e chamadoss construtor da classe herdada super.
            
            Sintaxe 2
            
modidficador_acesso class nome_excecao extends excecao_base
{
    public nome_excecao(String mensagem_erro)
    {
        super(mensagem_erro);
    }
}
            
                Chamando o construtor da classe que herdamos, podemos utilizar os métodos getMessage, 
                toString e outros.
            
            Exemplo 1
            
//MinhaException.java
public class MinhaException extends Exception{
    
    public MinhaException(String mgs){
        super(msg);
    }
}
//Main.java
public class Main
{
	public static void main(String[] args){
        try{
           throw new MinhaException("MinhaException");
        }
        catch( MinhaException e ){
            e.getMessage();
        }
	}
}
            Saída
            
MinhaException
         
     
    
        
Adicionando atributos e métodos
    
    
        
            
                As exceções customizadas aceitam métodos e atributos assim como qualquer outra classe que criamos até agora. 
                Tudo estudado sobre atributos, métodos e outros é aplicável.
            
            Exemplo 2
            
//MinhaException.java
public class MinhaException extends Exception{
    private int codigo = -1;
    public int getCodigoErro(){
        return codigo;
    }
    public MinhaException(int cod, String msg){
        super(msg);
        codigo = cod;
    }
}
//Main.java
public class Main
{
	public static void main(String[] args) {
        try {
           throw new MinhaException(999,"Mensagem customizada");
        }
        catch( MinhaException e ){
            System.out.println(e.getCodigoErro());
            System.out.println(e.getMessage());
        }
	}
}
            Saída
            
999
Mensagem customizada
         
     
    
        Exception customizada e throw
        
     
    
        
            
                Da mesma forma que podemos declarar um método que pode lançar alguma das exceções nativas, o mesmo pode ser feito com
               exceções customizadas usando o throws como já visto.
            
            Exemplo 3
            
//MinhaException.java
public class MinhaException extends Exception{
    private int codigo = -1;
    public int getCodigoErro(){
        return codigo;
    }
    public MinhaException(int cod, string s){
        super(s);
        codigo = cod;
    }
}
//Main.java
public class Main
{
    public static void metodo() throws MinhaException
    {
        throw new MinhaException(999,"Mensagem de erro"); 
    }
	public static void main(String[] args) {
        try{
           metodo();
        }
        catch( MinhaException e ){
            System.out.println(e.getMessageCustom());
        }
	}
}
            Saída
            
Mensagem de erro
         
     
    
        Histórico de atualizações
        
     
    
        
            
                - 24/09/2024 - revisão 2 - Correções em descrição de tópicos; outros ajustes
 
                - 08/02/2024 - revisão 1 - correção em navegação e erros gramaticais
 
                - 04/09/2023 - versão inicial
 
            
         
     
    
    
    
            
            
                
                    
                    Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
                em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.