Nivel 3 — Funciones
Gestión de errores
Notas originales de SunDiaL · Ver fuente en inglés
La terminología es la siguiente: una función lanza errores, llamados excepciones; tu función intenta ejecutar otra función y captura los errores que esta lanza. Ejemplo:
float Divide(float x, float y)
{
if(y == 0)
{
throw new Exception("Cannot divide by zero")
}
return x/y;
}
void Main()
{
float x = 10;
float y = 0;
try
{
float result = Divide(x, y);
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
}
Este es el ejemplo más básico de gestión de excepciones o errores. Aun así, hay algunos puntos más:
- Puedes capturar varias excepciones y tratarlas de forma diferente. Basta con encadenar varios bloques catch. El orden importa.
try{}
catch(ArgumentException e) {}
catch(NullReferenceException e) {}
catch(Exception e) {}
- Puedes utilizar
finallyjunto atry-catchpara tener un bloque de código que se ejecute independientemente de si hay una excepción.
Suele utilizarse para liberar recursos: cerrar archivos, conexiones de bases de datos, detener hilos de larga duración, etc.
try {}
catch {} //the exception can be omitted if it's not used for anything
finally {}