Menu
Coddy logo textTech

Exceções Personalizadas

Parte da seção Lógica & Fluxo do Journey de C# da Coddy. Lição 29 de 66.

Exceções personalizadas permitem criar tipos de exceção específicos para os cenários de erro exclusivos da sua aplicação.

Para criar uma exceção personalizada, defina uma classe que herda de Exception. Herança significa que sua nova classe obtém automaticamente todo o comportamento da classe pai, neste caso, Exception, ao mesmo tempo que permite adicionar ou personalizar funcionalidades. A sintaxe class MyException : Exception significa que MyException estende Exception.

public class InvalidAgeException : Exception
{
    public InvalidAgeException() : base("Age is not valid.")
    {
    }
    
    public InvalidAgeException(string message) : base(message)
    {
    }
}

: Exception: herda da classe integrada Exception.
: base(...): chama o construtor pai Exception para definir a mensagem de erro.
O primeiro construtor fornece uma mensagem padrão quando nenhuma é fornecida.
O segundo construtor aceita uma mensagem personalizada para que os chamadores possam descrever o erro em detalhes.

Agora você pode lançar sua exceção customizada quando necessário:

int age = -5;
if (age < 0)
{
    throw new InvalidAgeException("Age cannot be negative.");
}

Quando este código for executado com uma idade negativa, ele lançará sua exceção personalizada com a mensagem "Age cannot be negative."

Observação: Nos exercícios desta lição, as funções de validação retornam true quando a entrada é válida e lançam uma exceção personalizada quando ela não é. Como uma exceção não tratada interrompe a execução imediatamente, os casos de teste precisam apenas verificar o caminho de retorno true: a própria exceção é o resultado observável para entradas inválidas.

challenge icon

Desafio

Médio

Crie uma classe de exceção personalizada chamada InvalidTemperatureException que herde de Exception. Ela deve ter:

  1. Um construtor padrão que defina a mensagem "Temperature is not valid."
  2. Um construtor que aceite uma mensagem personalizada.

Em seguida, implemente um método chamado checkTemperature que:

  • Receba um parâmetro inteiro que represente uma temperatura em Celsius
  • Lance uma InvalidTemperatureException com a mensagem "Temperature below absolute zero!" se a temperatura for menor que -273
  • Retorne true se a temperatura for válida

Experimente você mesmo

using System;

class CheckTemperature
{
    // Crie sua classe de exceção personalizada aqui
    
    public static bool checkTemperature(int celsius)
    {
        // Escreva seu código aqui
    }
    
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo

Pratique por conta própria: Compilador de C# online