Revise la solución para el desafío try-catch
El código siguiente es una posible solución para el desafío de la unidad anterior:
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);
}
En esta solución, el Process1 método se ha actualizado para usar el try-catch patrón . Se llama al método WriteMessage en el bloque de código try, lo que permite Process1 capturar la excepción antes de que la cláusula catch la capture en las instrucciones de nivel superior.
La ejecución de esta aplicación genera la salida necesaria:
∞
Exception caught in Process1
Exit program
Tenga en cuenta que, dado que la excepción se detecta dentro de Process1, no se ejecuta el bloque de código catch de las declaraciones a nivel superior. Las ventajas obtenidas al detectar excepciones en distintos niveles de la pila de llamadas se vuelven más evidentes cuando se detectan tipos de excepciones específicos. Examinará los tipos de excepciones en la siguiente unidad.
Si has tenido éxito en este desafío, ¡felicitaciones! Continúe con la unidad siguiente.
Importante
Si tiene problemas para completar este desafío, quizás deba revisar las unidades anteriores antes de continuar.