36-Exceptions try...catch en C#


Excepciones de C#

Al ejecutar el codigo pueden ocorrir errores, errores codificados producidos por el programador, o varios otros tipos de errores como entradas incorrectas

En C# cuando ocurre un error el programa se detiene y genera un mensage de error

El termino tecnico para estos errores son las excepciones


try and catch

En espanol quiere decir intentar y atrapar

la declaracion try le permite defenir un bloque de codigo, para ser aprobado en busca de errores mientras se esta ejecutando

La declaracion catch permite defenir un bloque de codigo para ser ejecutado, si ocurre un error en el bloque try

try y catch fuerman pareja, van juntas


sintaxis

try 
{
  //  Block of code to try
}
catch (Exception e)
{
  //  Block of code to handle errors
}
    

...

Creamos una matriz de 3 enteros

Esto generara un error porque el 10 no existe en la matriz

int[] myNumbers = {1, 2, 3};
Console.WriteLine(myNumbers[10]); // error!
    

salida System.IndexOutOfRangeException: 'Index was outside the bounds of the array.'

si usamos el bloque try catch seria de esta manera

Ejemplo

try
{
  int[] myNumbers = {1, 2, 3};
  Console.WriteLine(myNumbers[10]);
}
catch (Exception e)
{
  Console.WriteLine(e.Message);
}
    

salida Index was outside the bounds of the array.


También puede generar su propio mensaje de error:

Ejemplo

try
{
  int[] myNumbers = {1, 2, 3};
  Console.WriteLine(myNumbers[10]);
}
catch (Exception e)
{
  Console.WriteLine("Algo salió mal.");
}
    

salida Algo salió mal.




Declaracion finally

La instrucion finally permite ejecutar el codigo despues del try...catch independentemente del resultado

Ejemplo

        try
{
  int[] myNumbers = {1, 2, 3};
  Console.WriteLine(myNumbers[10]);
}
catch (Exception e)
{
  Console.WriteLine("algo ha salido mal.");
}
finally
{
  Console.WriteLine("El try y el catch ya finalizaran");
}

    

salida

    Algo salió mal. 
    El try y el catch ya finalizaran




La palabra throw

La declaracion throw permite declarar un error personalizado

La declaracion throw se usa junto con una clase de exception

En C# tenemos muchas clases de exception, listare algunas:

  • ArithmeticException
  • FileNotFoundException
  • IndexOutOfRangeException
  • TimeOutException
  • etc

Ejemplo

        static void checkAge(int age)
{
  if (age < 18)
  {
    throw new ArithmeticException("Acceso denegado: debe tener al menos 18 años.");
  }
  else
  {
    Console.WriteLine("Acceso concedido - ¡Eres lo suficientemente viejo!");
  }
}

static void Main(string[] args)
{
  checkAge(15);
}
    

salida

System.ArithmeticException: 'Acceso denegado: debe tener al menos 18 años.' 






Publicar un comentario

0 Comentarios