Gestione delle eccezioni in C # - Come funziona la gestione delle eccezioni in C # - Esempi

Sommario:

Anonim

Introduzione alla gestione delle eccezioni in C #

Non possiamo aspettarci che un utente inserisca i dettagli corretti in ogni momento. Tuttavia, se l'input errato o imprevisto non viene gestito correttamente, l'intero codice potrebbe bloccarsi o andare con un ciclo infinito. Questo è un problema che si avvia durante l'esecuzione del programma a causa di condizioni o input imprevisti. Ad esempio, il risultato è infinito quando un numero viene diviso per zero. La gestione delle eccezioni è il modo per dire al programma di passare al blocco di codice successivo o fornire il risultato definito in determinate situazioni. La gestione delle eccezioni potrebbe essere eseguita con meno di quattro parole chiave.

  1. Try: il blocco try definisce il tipo di eccezione da gestire. Questo è dove l'eccezione verrebbe colta. Si accoppierà sempre con un blocco catch.
  2. Cattura: una volta che il blocco try ha definito il tipo e ottenuto un'eccezione durante l'esecuzione, il blocco catch confermerà il tipo di gestore eccezioni da utilizzare. Questo blocco determinerà anche dove deve essere gestita l'eccezione. Come indica la parola chiave, è come catturare l'eccezione.
  3. Infine: questo blocco ha alcune serie di istruzioni. Indipendentemente dall'eccezione generata, le istruzioni definite nel blocco finale verranno sempre eseguite.
  4. Lancio: quando viene rilevata un'eccezione, viene utilizzata la parola chiave lancio per mostrare l'eccezione rilevata.

È possibile salvare il software o il codice da molte seccature definendo il gestore delle eccezioni. È buona norma definire il gestore delle eccezioni ovunque vi sia una possibile eccezione.

Sintassi
Ogni volta che viene sollevata l'eccezione, un metodo dichiarato rileva l'eccezione con l'aiuto di try and catch parola chiave. Dobbiamo inserire questa combinazione nella parte del codice, è prevista un'eccezione. Questi codici sono chiamati codici protetti. Puoi anche definire più di una parola chiave catch per una parola chiave try. Alla fine del contenuto, verrà eseguita la parte finale del codice e verrà eseguita indipendentemente dal fatto che venga sollevata o meno un'eccezione.

Codice

try
(
//Define the statement that could cause an exception.
)
Catch(ExceptionName secondException)
(
//error handling code
)
Finally
(
//define the statement that will be executed
)

Come funziona la gestione delle eccezioni in C #?

Esistono molte classi predefinite per la gestione dell'eccezione. Il blocco try copre la parte del codice che potrebbe generare un'eccezione e catch conferma cosa fare quando viene rilevata un'eccezione. La parte finale del blocco definisce cosa deve essere fatto se l'eccezione viene rilevata o meno e la parte di lancio visualizza il messaggio se impostato.

Classi di eccezione in C #

Esistono molte classi disponibili in C # attraverso le quali è possibile rappresentare le eccezioni. Tutte le classi sono derivate dalla classe principale denominata Sistema. Eccezione. Esistono poche classi derivate anche da System.ApplicationException e System.SystemException.

Esempi di classi di eccezioni in C #

Le eccezioni derivano dal sistema. Classe di eccezione Ecco l'elenco delle classi di eccezioni comuni in C #.

EccezioneDescrizione
System.DivideByZeroExceptiongestisce l'errore quando si tenta di dividere un numero per zero.
System.NullReferenceExceptiongestisce l'errore quando si riferisce a un oggetto che non esiste.
System.InvalidCastExceptiongestisce l'errore quando si tenta di eseguire il cast non valido.
System.IO.IOExceptionTutti gli errori di input-output vengono gestiti.
System.FieldAccessExceptionQuando si tenta di accedere a una classe non autorizzata

1. C # try / catch

La gestione delle eccezioni viene eseguita da try and catch block in C #. Il blocco try in C # viene utilizzato per posizionare il codice che può generare un'eccezione. L'eccezione è gestita dal blocco catch.

Esempio C # senza provare / catturare

Codice:

using System;
public class exceptionhandling
(
public static void Main(string() args)
(
int a = 10;
int b = 0;
int x = a/b; //we are trying to divide the number with zero
Console.WriteLine("other part of the code");
)
)

Produzione:

Esempio di prova / cattura di C #

Codice

using System;
public class ExExample
(
public static void Main(string() args)
(
try
(
int a = 10;
int b = 0;
int x = a / b;
)
catch (Exception e) ( Console.WriteLine(e); )
Console.WriteLine("Rest of the code");
)
)

Produzione:

L'uso delle classi di eccezioni in C # finalmente

Ti mostrerà il messaggio indipendentemente dall'eccezione.

Codice

using System;
public class Exceptionhandling
(
public static void Main(string() args)
(
try
(
int x = 5;
int y= 0;
int z = x / y;
)
catch (Exception obj) ( Console.WriteLine(obj); )
finally ( Console.WriteLine("Time to execute finally block"); )
Console.WriteLine("Other part of the code");
)
)

Produzione:

1. C # infine esempio se Eccezione non viene gestita

Codice

using System;
public class ExceptionHandling
(
public static void Main(string() args)
(
try
(
int p = 6;
int q = 0;
int r= p/q;
)
catch (NullReferenceException nullObject) ( Console.WriteLine(nullObject); )
finally ( Console.WriteLine("Exception not handled. Now Finally section will be executed"); )
Console.WriteLine("Other part of the code");
)
)

Produzione:

2. Eccezione definita dall'utente C #

Non solo il sistema definito, ma possiamo anche impostare la nostra eccezione. Tuttavia, è necessario ereditare il codice per farlo.

Codice

using System;
public class userdefinedInvalidAge : Exception
(
public userdefinedInvalidAge (String errorMessage)
: base(errorMessage)
(
)
)
public class TestUserDefinedException
(
static void validateAge(int age)
(
if (age < 18)
(
throw new userdefinedInvalidAge("Sorry, Age must be greater than 18");
)
)
public static void Main(string() args)
(
try
(
validateAge(12);
)
catch (userdefinedInvalidAge e) ( Console.WriteLine(e); )
Console.WriteLine("Rest of the code");
)
)

Produzione:

Conclusione

In qualsiasi posto pensi che possa generare un errore a causa di qualcosa, dovrebbe essere usato il gestore delle eccezioni. È essenziale utilizzare un'istruzione catch e iniziare da un'eccezione generica a una specifica. L'intero software o codice è a rischio senza un adeguato gestore delle eccezioni.

Articoli consigliati

Questa è una guida alla gestione delle eccezioni in C #. Qui discutiamo di come funziona la gestione delle eccezioni in C #, esempi e uso di c #. Puoi anche consultare i nostri altri articoli correlati per saperne di più-

  1. Sovraccarico in C #
  2. Funzioni stringa C #
  3. Usi di C #
  4. Dichiarazione C # if
  5. Guida alla gestione delle eccezioni in VB.NET
  6. Sovraccarico e override in C #
  7. Eventi VB.Net