try catch
En C#, try-catch
es una estructura fundamental para manejar excepciones, permitiéndote escribir código que responde de manera adecuada cuando ocurren errores. Aquí tienes una explicación detallada y ejemplos:
Estructura básica de try-catch:
try
{
// Código que puede lanzar una excepción
}
catch (TipoDeExcepcion ex)
{
// Manejo de la excepción
}
finally
{
// Este bloque es opcional y se ejecuta siempre, haya o no excepciones
}
try
: Contiene el código que podría lanzar una excepción.catch
: Captura y maneja la excepción. Puedes especificar el tipo de excepción que quieres manejar. Si no sabes qué tipo de excepción puede ocurrir, puedes usarException
para atrapar cualquier excepción.finally
: Es opcional y se ejecuta siempre, independientemente de si se lanzó una excepción o no. Se usa para realizar acciones de limpieza, como cerrar archivos o conexiones de bases de datos.
Ejemplos:
-
Manejo genérico de excepciones:
try { // Código que podría lanzar una excepción int resultado = 10 / int.Parse("0"); } catch (Exception ex) { // Manejo de la excepción Console.WriteLine($"Se produjo una excepción: {ex.Message}"); } finally { // Código que se ejecuta siempre Console.WriteLine("Operación finalizada."); }
-
Manejo de excepciones específicas:
try { int[] numeros = { 1, 2, 3 }; Console.WriteLine(numeros[5]); // Esto lanzará un IndexOutOfRangeException } catch (IndexOutOfRangeException ex) { Console.WriteLine($"Índice fuera de rango: {ex.Message}"); } catch (Exception ex) { Console.WriteLine($"Se produjo una excepción: {ex.Message}"); }
-
Uso de finally sin catch:
try { // Código que podría lanzar una excepción } finally { // Código que se ejecuta siempre, incluso si hay una excepción }
-
Lanzar excepciones personalizadas:
try { throw new MiExcepcion("Este es un mensaje personalizado"); } catch (MiExcepcion ex) { Console.WriteLine($"Se lanzó una excepción personalizada: {ex.Message}"); }
Recuerda adaptar el código según tus necesidades y considerar las mejores prácticas de manejo de excepciones para tu aplicación.