Throw en C#
La palabra clave throw en C# se utiliza para lanzar excepciones manualmente.
Permite interrumpir el flujo de ejecución cuando ocurre una situación inesperada o un error que debe ser
manejado por el llamador.
Usar throw correctamente es esencial para crear aplicaciones robustas y fáciles de depurar.
Lanzar una excepción
Puedes usar throw junto con una instancia de una excepción para detener la ejecución y
notificar el problema.
if (valor < 0) {
throw new ArgumentException("El valor no puede ser negativo.");
}
Aquí se lanza una excepción si la condición no se cumple.
Relanzar una excepción capturada
Dentro de un bloque catch puedes relanzar la misma excepción para que otros bloques más externos la manejen.
try {
Procesar();
} catch (Exception ex) {
Console.WriteLine("Error capturado.");
throw;
}
Usar throw; sin argumentos conserva el stack trace original.
Personalizar excepciones
Puedes definir tus propias excepciones heredando de Exception para describir errores
específicos de tu aplicación.
public class MiExcepcion : Exception {
public MiExcepcion(string mensaje) : base(mensaje) { }
}
Y lanzarla con:
throw new MiExcepcion("Ocurrió un error personalizado.");
Buenas Prácticas
Usa throw para situaciones realmente excepcionales, no como flujo de control.
Prefiere excepciones específicas (por ejemplo, ArgumentNullException) en lugar de
Exception genérico.
Conserva el stack trace usando throw; al relanzar.
Proporciona mensajes claros para facilitar el diagnóstico.