🚩Excepciones
Eventos durante la ejecución cuando algo inesperado ocurre. Permiten gestionar estos eventos y tomar medidas, como mostrar un mensaje de error.
try
{
// Código que puede causar una excepción
}
catch (TipoExcepcion ex)
{
// Código si ocurre una excepción del tipo especificado
Console.WriteLine(ex.Message);
}
finally
{
// Código que se ejecuta siempre
}
class Program
{
static void Main()
{
try
{
int divisor = 0;
int resultado = 10 / divisor; // DivideByZeroException
}
catch (DivideByZeroException ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
finally
{
Console.WriteLine("Este bloque se ejecuta siempre.");
}
}
}
System.Exception
La clase base para todas las excepciones en .NET.
System.SystemException
Clase base para todas las excepciones predefinidas del sistema.
System.IndexOutOfRangeException
Se produce cuando se intenta acceder a un índice fuera de los límites de una matriz o colección.
System.NullReferenceException
Se lanza cuando se intenta usar una referencia que no apunta a ningún objeto.
System.InvalidOperationException
Se produce cuando un método se llama en un estado no válido.
System.ArgumentException
Se lanza cuando un argumento proporcionado a un método no es válido.
System.ArgumentNullException
Se lanza cuando se pasa un argumento nulo a un método que no lo admite.
System.ArgumentOutOfRangeException
Se produce cuando un argumento está fuera del rango de valores permitidos.
System.FormatException
Se lanza cuando el formato de un argumento no es válido, o cuando una cadena de formato no tiene el formato correcto.
System.InvalidCastException
Se lanza cuando una conversión de tipo o casting es inválido.
System.ObjectDisposedException
Se produce cuando se realiza una operación en un objeto que ha sido eliminado.
System.NotImplementedException
Se lanza cuando un método solicitado o una operación no está implementada.
System.IO.IOException
Clase base para las excepciones que se producen durante la entrada/salida.
System.TimeoutException
Se lanza cuando se supera el tiempo de espera de una operación.
System.OverflowException
Se produce cuando una operación aritmética, de casting o de conversión en una operación matemática produce un desbordamiento.
System.DivideByZeroException
Se lanza cuando se intenta dividir un valor numérico por cero.
System.StackOverflowException
Se produce cuando hay un desbordamiento de pila debido a una recursividad excesiva o a un uso excesivo de la pila.
📘 Concepto de Excepción Personalizada
Las excepciones personalizadas son clases que extienden de Exception
o alguna de sus subclases.
Se utilizan para representar errores específicos que no están cubiertos por las excepciones estándar de .NET.
🔨 Creación de una Excepción Personalizada
Para crear una excepción personalizada, debes definir una clase que herede de Exception
.
Es común agregar constructores que permitan pasar mensajes de error y otra excepción como causa interna.
public class MiExcepcionPersonalizada : Exception
{
public MiExcepcionPersonalizada() : base() { }
public MiExcepcionPersonalizada(string message) : base(message) { }
public MiExcepcionPersonalizada(string message, Exception inner) : base(message, inner) { }
}
✅ Lanzamiento de Excepciones Personalizadas Utiliza
Se usa throw
para lanzar tu excepción personalizada cuando se detecte una condición de error específica.
if(condicionDeError)
{
throw new MiExcepcionPersonalizada("Descripción del error");
}
ó
try
{
// Código que puede lanzar MiExcepcionPersonalizada
}
catch (MiExcepcionPersonalizada ex)
{
// Manejo específico para MiExcepcionPersonalizada
}
catch (Exception ex)
{
// Manejo de cualquier otra excepción no específica
}
OJO!
Orden de Bloques Catch: Es crucial ordenar los bloques catch de más específico a más general para asegurar que las excepciones se manejen correctamente. Un bloque catch incorrectamente ordenado puede capturar excepciones de forma prematura y ocultar errores importantes.
Última actualización