Exercícios de C#

Definir exceções de negócio próprias em C#

Nesta lição, você vai criar um tipo de exceção próprio para representar um erro de negócio e capturar exatamente esse tipo de erro.

Introdução

Em vez de lançar uma Exception genérica, você pode definir uma exceção com um nome que descreve claramente o erro de negócio, como falta de estoque. Assim o código fica mais fácil de ler, e o tratamento de erros consegue capturar exatamente o tipo de erro que precisa tratar.

A classe InsufficientStockException herda de Exception, então tem todo o comportamento de uma exceção comum. O método Reserve lança essa exceção quando a quantidade pedida é maior que o estoque disponível. O bloco catch captura apenas o tipo InsufficientStockException e imprime a mensagem Not enough stock.

Exemplo de C# executável

C#
Rodar código →
Program.cs
using System;
class InsufficientStockException(string message) : Exception(message) { }
class Program
{
    static void Reserve(int available, int requested)
    {
        if (requested > available) throw new InsufficientStockException("Not enough stock");
    }
    static void Main()
    {
        try { Reserve(2, 3); }
        catch (InsufficientStockException error) { Console.WriteLine(error.Message); }
    }
}
Resultado da execução
Not enough stock

Pratique com o depurador

Coloque um breakpoint em uma atribuição ou condição importante, clique em Debug e veja os valores das variáveis locais antes de passar para a próxima linha.

Pratique com um desafio

Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.

Todos os desafios