Entender la diferencia entre tiro ex y tiro, ¿Por qué el StackTrace original se preserva en este ejemplo:StackTrace originales/LINENUMBERS en Excepciones .NET
static void Main(string[] args)
{
try
{
LongFaultyMethod();
}
catch (System.Exception ex)
{
Console.WriteLine(ex.StackTrace);
}
}
static void LongFaultyMethod()
{
try
{
int x = 20;
SomethingThatThrowsException(x);
}
catch (Exception)
{
throw;
}
}
static void SomethingThatThrowsException(int x)
{
int y = x/(x - x);
}
Pero no en éste:
static void Main(string[] args)
{
try
{
LongFaultyMethod();
}
catch (System.Exception ex)
{
Console.WriteLine(ex.StackTrace);
}
}
static void LongFaultyMethod()
{
try
{
int x = 20;
int y = x/(x - 20);
}
catch (Exception)
{
throw;
}
}
El segundo escenario está produciendo la misma salida que arrojar ex haría?
En ambos casos, uno espera ver el número de línea donde y se inicializa.
Esto es genial, gracias por la información. – Nariman