Esaminare la soluzione per la sfida try-catch
Il codice seguente è una possibile soluzione per la sfida dell'unità precedente:
try
{
Process1();
}
catch
{
Console.WriteLine("An exception has occurred");
}
Console.WriteLine("Exit program");
static void Process1()
{
try
{
WriteMessage();
}
catch
{
Console.WriteLine("Exception caught in Process1");
}
}
static void WriteMessage()
{
double float1 = 3000.0;
double float2 = 0.0;
int number1 = 3000;
int number2 = 0;
Console.WriteLine(float1 / float2);
Console.WriteLine(number1 / number2);
}
In questa soluzione il Process1 metodo è stato aggiornato per usare il try-catch modello. Il metodo WriteMessage viene chiamato nel blocco di codice try, che consente a Process1 di rilevare l'eccezione prima che venga rilevata dalla clausola catch nelle istruzioni di primo livello.
L'esecuzione di questa applicazione genera l'output richiesto:
∞
Exception caught in Process1
Exit program
Si noti che poiché l'eccezione viene intercettata all'interno di Process1, il blocco di codice catch nelle istruzioni di primo livello non viene eseguito. I vantaggi ottenuti rilevando eccezioni a livelli diversi nello stack di chiamate diventano più evidenti quando vengono rilevati tipi di eccezione specifici. Verranno esaminati i tipi di eccezione nell'unità successiva.
Se hai avuto successo in questa sfida, congratulazioni! Continuare con l'unità successiva.
Importante
Se non si è riusciti a risolvere questa sfida, è consigliabile rivedere le unità precedenti prima di procedere.