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
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); }
}
}
Not enough stockPratique com o depurador
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.
- Primeira idade inválida Valide idades digitadas e informe onde está a primeira entrada inválida, em vez de deixar o programa quebrar. Fácil
- Somar os números válidos Some as entradas que são números inteiros e ignore todo o resto, do jeito que try/except lida com entrada inválida. Fácil