Objetivos
Criar uma Exception customizada
Para criarmos nossa própria exceção, precisamos declarar uma classe derivada que irá herdar a classe
Exception ou outra classe de exceção nativa desejada como
ArithmeticException ou ArrayIndexOutOfBoundException, por exemplo.
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 chamamos o construtor da classe super com uso do construtor super como
mostrado a seguir:
Sintaxe 2
modificador_acesso class minha_excecao extends excecao_base
{
public minha_excecao(String mensagem_erro)
{
super(mensagem_erro);
}
}
Como nossa exception herda de Exception e iniciamos usando o super, agora podemos utilizar os métodos getMessage,
toString e outros.
Tab 1. : Métodos
| Método |
Descrição |
| getMessage |
Retorna mensagem de erro |
| toString |
Retorna mensagem de erro formatada |
| getStackTrace |
Retorna pilha de execução como string |
| printStackTrace |
Imprime a pilha de execução |
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
Adicionar atributo e método
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 também.
Sintaxe: método
modificador_acesso tipo_dado nome_metodo(lista_parametros)
{
//omitido
}
Sintaxe: atributo
modificador_acesso nome_atributo;
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 throws
Da mesma forma que podemos declarar que 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
- 21/07/2026 - revisão 4 - Ajustes: objetivos, títulos; sintaxes 'Adicionar atributo e método'; Tab. 1; outros pontuais
- 25/07/2025 - revisão 3 - Melhorias pontuais; ajustes: sintaxes e objetivos
- 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.