Nella scorsa lezione abbiamo introdotto il concetto di eccezione ed abbiamo visto come sia possibile intercettare gli errori con il blocco try … catch. Questa volta vedremo come sollevare un’eccezione, facciamo un esempio.
using System; public class Corso { static void Main(string[] args) { Corso c = new Corso(); try { c.Test(); } catch { Console.WriteLine("Ho intercettato la mia eccezione!"); } Console.ReadKey(); } public void Test() { throw new System.Exception(); } }
Come potete notare dall’esempio abbiamo sollevato un’eccezione con throw e poi l’abbiamo intercettata. Come abbiamo visto finora le eccezioni sono delle classi, vediamone i metodi e gli attributi comuni:
Come potete comprendere possiamo sviluppare nuove classi per gestire eccezioni personalizzate ed estendere così le informazioni sugli errori a tutte le anomalie della nostra applicazione. Vediamo quali sono le classi che gestiscono le eccezioni:
Esiste un’altra classe per gestire le eccezioni della propria applicazione e dalla quale possiamo derivare le nostre eccezioni, si tratta di ApplicationException. Vediamo un esempio d’uso.
using System; public class MyException : ApplicationException { public MyException(string strMessage) : base(strMessage) { } } public class Corso { static void Main(string[] args) { Corso c = new Corso(); try { c.Sbaglia(); } catch (MyException e) { Console.WriteLine("{0}", e.Message); } Console.ReadKey(); } public void Sbaglia() { throw new MyException("Errore di prova!"); } }
In alcuni casi è conveniente propagare le eccezioni, ad esempio si potrebbe voler intercettare un errore, ripulire l’oggetto e poi sollevare un’eccezione al metodo chiamante. A
questo possiamo propagare la vecchia eccezione oppure instanziarne una nuova con l’operatore new. In questo caso è possibile associare la nuova eccezione con quella vecchia utilizzando la proprietà InnerException, creando in questo modo una vera e propria catena che contiene la storia dell’errore ed i passaggi che sono stati elaborati.
<< Lezione Precedente – Inizio Corso – Indice Lezioni – Lezione Successiva >>
Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…
MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→
In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…
In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…
Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…
Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→