Manejo de Errores en la Práctica
La sintaxis try-catch
tiene una sintaxis adicional que nos permite atrapar tipos específicos de errores y tratarlos por separado:
El tipo Exception
que usamos en el capítulo anterior simplemente captura todo tipo de errores, sin embargo hay algunos subtipos de Exception
que capturan tipos de errores más específicos. A continuación se muestran algunos tipos de excepción comunes:
DivideByZeroException
: Hay una división por cero.
FileNotFoundException
: El fichero al que estamos accediendo no existe.KeyNotFoundException
: La clave del diccionario no existe.
IndexOutOfRangeException
: El índice especificado de un array o lista no es válido.
El término errorVarName
es una variable que almacena el objeto Exception, y tiene información como el mensaje de error al que se puede acceder a través de errorVarName.Message
. Podemos omitirlo en caso de que no lo vayamos a utilizar:
He aquí un ejemplo de uso de este tipo de bloque try-catch:
index.cs
Utiliza ahora estos conceptos. Rellena los espacios en blanco con los tipos de excepción pertinentes en el siguiente código para completar el reto.
index.cs
Here's an example of using this kind of try-catch block:
index.cs
Now using these concepts. Fill in the blanks with relevant exception types in the following code to complete the challenge.
index.cs
catch
block. Read the code and understand which catch
block is most appropriate for handling a certain type of exception.
using System;
using System.Collections.Generic;
public class HelloWorld
{
public static void Main(string[] args)
{
int[] numbers = { 1, 2, 5, 7, 9 };
var numberNames = new Dictionary<int, string>();
numberNames.Add(1, "One");
numberNames.Add(2, "Two");
numberNames.Add(5, "Five");
numberNames.Add(9, "Nine");
int i = 0;
while (true)
{
try
{
int key = numbers[i];
Console.WriteLine($"{key} is {numberNames[key]}");
i++;
}
catch (IndexOutOfRangeException)
{
break;
}
catch (KeyNotFoundException)
{
numberNames.Add(7, "Seven");
}
}
}
}
¿Todo estuvo claro?
Contenido del Curso
C# Beyond Basics
1. Estructuras Adicionales y Manejo de Archivos
2. Estructuras y Enumeradores
3. Introducción a la Programación Orientada a Objetos (POO)
C# Beyond Basics
Manejo de Errores en la Práctica
La sintaxis try-catch
tiene una sintaxis adicional que nos permite atrapar tipos específicos de errores y tratarlos por separado:
El tipo Exception
que usamos en el capítulo anterior simplemente captura todo tipo de errores, sin embargo hay algunos subtipos de Exception
que capturan tipos de errores más específicos. A continuación se muestran algunos tipos de excepción comunes:
DivideByZeroException
: Hay una división por cero.
FileNotFoundException
: El fichero al que estamos accediendo no existe.KeyNotFoundException
: La clave del diccionario no existe.
IndexOutOfRangeException
: El índice especificado de un array o lista no es válido.
El término errorVarName
es una variable que almacena el objeto Exception, y tiene información como el mensaje de error al que se puede acceder a través de errorVarName.Message
. Podemos omitirlo en caso de que no lo vayamos a utilizar:
He aquí un ejemplo de uso de este tipo de bloque try-catch:
index.cs
Utiliza ahora estos conceptos. Rellena los espacios en blanco con los tipos de excepción pertinentes en el siguiente código para completar el reto.
index.cs
Here's an example of using this kind of try-catch block:
index.cs
Now using these concepts. Fill in the blanks with relevant exception types in the following code to complete the challenge.
index.cs
catch
block. Read the code and understand which catch
block is most appropriate for handling a certain type of exception.
using System;
using System.Collections.Generic;
public class HelloWorld
{
public static void Main(string[] args)
{
int[] numbers = { 1, 2, 5, 7, 9 };
var numberNames = new Dictionary<int, string>();
numberNames.Add(1, "One");
numberNames.Add(2, "Two");
numberNames.Add(5, "Five");
numberNames.Add(9, "Nine");
int i = 0;
while (true)
{
try
{
int key = numbers[i];
Console.WriteLine($"{key} is {numberNames[key]}");
i++;
}
catch (IndexOutOfRangeException)
{
break;
}
catch (KeyNotFoundException)
{
numberNames.Add(7, "Seven");
}
}
}
}
¿Todo estuvo claro?