Leitura recomendada
Objetivos
Criando uma Exception customizada
Para criarmos nossas próprias exceções, precisamos primeiro declarar uma classe que herda da classe Exception
ou alguma outra classe de exceção desejada como ArithmeticException, por exemplo.
Sintaxe
modificador_acesso class minha_excecao : excecao_base
{
//corpo
}
No construtor de nossa exceção customizada, utilizamos um parâmetro para receber uma mensagem
informativa do erro customizado e invocamos construtor da classe herdada base.
Sintaxe
modificador_acesso class nome_excecao : excecao_base
{
public nome_excecao(string mensagem_erro): base(mensagem_erro)
{
//iniciar nome_excecao
}
}
Após iniciar nossa própria exception e também a classe base podemos utilizar as
métodos Message, StackTrace e outros herdados de Exception.
Exemplo 1
public class MinhaException : Exception
{
public MinhaException(String msg): base(msg)
{
//omitido
}
}
Saída
-
Adicionando atributos e métodos
As exceções customizadas aceitam métodos e atributos assim como qualquer outra classe concreta que
criamos até agora. Tudo o que foi estudado sobre herança
é aplicável.
Exemplo 2
public class MinhaException: Exception
{
private int codigo = -1; //atributo custom
public int GetCodigoErro() //método custom
{
return this.codigo;
}
public MinhaException(int cod, String msg): base(msg)
{
this.codigo = cod;
}
}
Como pode ser observado no exemplo acima, adicionamos um atributo extra, codigo, para armazenar
algum código extra referente ao nossa execption e um método GetCodigoErro que retorna esse
código.
Saída
-
Lançando e relançando
Não há diferença ao lançar ou relançar um exception customiza, exceto pelos atributos extras
adicionados. O uso do comando throw é feito como já visto em outros exemplos.
Exemplo 3
public class MinhaException: Exception{
private int codigo = -1;
public int GetCodigoErro(){
return this.codigo;
}
public MinhaException(int cod, String msg): base(msg)
{
this.codigo = cod;
}
}
public class Program
{
public static void Main(string[] args) {
try
{
throw new MinhaException(999,"Mensagem customizada");
}
catch( MinhaException e )
{
Console.WriteLine(e.GetCodigoErro());
Console.WriteLine(e.Message);
}
}
}
Saída
999
Mensagem customizada
Histórico de atualizações
- 13/08/2025 - revisão 2 - Ajustes: pontuais, sintaxes, ex. 1/2 e 'Objetivos'; Adição: 'Lançando e Relançando'
- 10/10/2024 - revisão 1 - Correções e ajustes pontuais
- 18/03/2024 - 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.