Definire eccezioni di business personalizzate in C#
In questa lezione creerai un tipo di eccezione personalizzato per rappresentare un errore di business e catturerai esattamente quel tipo di errore.
Introduzione
Invece di lanciare una generica Exception, puoi definire un'eccezione con un nome che descrive chiaramente l'errore di business, come la merce insufficiente in magazzino. Così il codice è più leggibile e la gestione degli errori può catturare proprio il tipo di errore da gestire.
La classe InsufficientStockException eredita da Exception, quindi ha tutto il comportamento di una normale eccezione. Il metodo Reserve lancia questa eccezione quando la quantità richiesta supera la merce disponibile. Il blocco catch cattura solo il tipo InsufficientStockException e stampa il messaggio Not enough stock.
Esempio C# eseguibile
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 stockEsercitati con il debugger
Esercitati con una sfida
Usa ciò che questa lezione spiega per risolvere un problema reale. Ogni sfida gira nel browser, con test immediati e una revisione dell'IA.
- Prima età non valida Valida le età inserite e segnala dove si trova la prima voce errata invece di far crashare il programma. Facile
- Sommare i numeri validi Somma gli elementi che sono numeri interi e ignora tutto il resto, come fa try/except quando gestisce input non valido. Facile