La funzione di gestione delle eccezioni del linguaggio C# ti aiuta a gestire eventuali situazioni impreviste o insolite che si verificano mentre il programma è in esecuzione. La gestione delle eccezioni utilizza le parole chiave try, catch e finally per provare determinate operazioni e gestire i fallimenti, e sebbene queste operazioni abbiano il potenziale di fallire, puoi provare a farlo se sei sicuro di doverlo fare e vuoi ripulire le risorse in seguito. Common Language Runtime (CLR), . NET Framework o qualsiasi libreria o codice applicativo di terze parti può generare eccezioni. Le eccezioni vengono create utilizzando la parola chiave throw. In molti casi, le eccezioni potrebbero non essere sollevate da un metodo chiamato direttamente dal codice, ma da un altro metodo più in basso nello stack di chiamate. In questo caso, il CLR espande lo stack per verificare se esiste un metodo che contiene un blocco di cattura per quel particolare tipo di eccezione e, se trova tale metodo, esegue il primo blocco di cattura trovato. Se non si trova alcun blocco di cattura appropriato da nessuna parte nello stack di chiamate, il processo viene terminato e un messaggio viene mostrato all'utente. In questo esempio, un metodo viene utilizzato per rilevare se esiste una situazione in cui viene diviso per zero; Se c'è, l'errore viene rilevato. Se non c'è gestione delle eccezioni, questo programma terminerà e produrrà un errore "DivideByZeroException Not Handled".- class ExceptionTest
- {
- static double SafeDivision(double x, double y)
- {
- if (y == 0)
- throw new System.DivideByZeroException();
- return x / y;
- }
- static void Main()
- {
- // Input for test purposes. Change the values to see
- // exception handling behavior.
- double a = 98, b = 0;
- double result = 0;
- try
- {
- result = SafeDivision(a, b);
- Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
- }
- catch (DivideByZeroException e)
- {
- Console.WriteLine("Attempted divide by zero.");
- }
- }
- }
Copia codice
|