Categories: C# (sharp)

Gestione delle Eccezioni in C#

Quando si verifica un errore nel programma, si dice che viene sollevata un’eccezione. Nei linguaggi strutturati di solito viene ritornato un determinato valore per certe funzioni, quando si ha un errore. In C# al momento della generazione del problema viene creata una classe ad hoc, nella quale sono descritte tutte le informazioni sull’errore e la procedura che l’ha generato. Quando si richiama un blocco di codice che potrebbe sollevare un errore, come la gestione dei files o altre routines che operano su informazioni non concesse a tutti gli utenti del sistema, è possibile racchiuderlo in un’istruzione di controllo, per intercettare eventuali eccezioni sollevate da quel codice. Il linguaggio C# permette di organizzare le parti del codice suddividendole in tre sezioni distinte:

  • try – l’algoritmo
  • catch – la routine di controllo dell’errore
  • finally – il codice eseguito sempre

Facciamo un semplice esempio pratico:

using System;

public class Corso
{
     static void Main(string[] args)
     {
         int[] k = {10, 12, 34};

        try
        {
            for (int i = 0; i < 5; ++i)
                Console.WriteLine("In posizione {0} abbiamo {1}",
                     i + 1, k[i]);
         }
         catch (System.Exception e)
         {
              Console.WriteLine(e.Message + "\n\n");
         }
         finally
         {
             Console.WriteLine("Scusate, ho sbagliato...\n\n");
             for (int i = 0; i < k.Length; ++i)
                 Console.WriteLine("In posizione {0} abbiamo {1}",
                        i + 1, k[i]);
         }

         Console.ReadKey();
    }
}

Nel blocco try viene specificato il codice che dev’essere soggetto a controllo, che viene eseguito passo passo in modo controllato dall’ambiente runtime del .NET. Le eccezioni che si vogliono intercettare sono invece indicate in opporture istruzioni catch, ne esiste una per ogni errore da gestire. Se si desidera comprendere più errori in un determinato ordine, occorre inserire più istruzioni catch. L’errore dicevamo, viene intercettato e caricato in una classe System.Exception, che risulta essere la classe base di tutte le altre che si occupano della gestione degli errori di file, di operazioni matematiche, come la divisione per zero, e tante altre; per un elenco completo guardatevi l’aiuto in linea del framework .NET. Il blocco finally viene eseguito sempre, al termine delle istruzioni del blocco try. Quest’ultimo viene di solito utilizzato per rilasciare le risorse, come per esempio se in try viene inserita l’apertura di un file. Nella prossima lezione concluderemo la parte del corso dedicata alle eccezioni, vedendo come sollevarle tramite codice e come creare eccezioni personalizzate per il proprio applicativo.

<< Lezione Precedente – Inizio CorsoIndice LezioniLezione Successiva >>

Share
Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.

Published by
Giampaolo Rossi

Recent Posts

Un Abbonamento per Tutti i Software

Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…

10 mesi ago

Software di Magazzino Gratuito

MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→

11 mesi ago

Mettere il PC in Lock Screen

In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…

3 anni ago

Fare il reset togliendo la corrente

In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…

3 anni ago

Prossimi Aggiornamenti Software

Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…

3 anni ago

Come Eliminare i Files in Windows

Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→

3 anni ago