InnerException de la InnerException de la Exceptio
Publicado por maxi (2 intervenciones) el 05/09/2007 21:24:08
No tengo un problema, sino lo que busco y aún no encuentro es la manera de hacer algo "más elegante"...
La situación es la siguiente: tengo una Exception que se produce en la instalación, y mi tarea es recorrer todas las InnerException de ésta para generar un StackTrace "bien detallado" del error...
Ahora bien, mi manera de implementarlo fue la siguiente (aviso: es antiestético)
public static void Main()
{
Stack p = new Stack();
try
{
// acá lanzo un Exception con varias InnerException dentro
miFuncion1();
} catch (Exception e)
{
while (true)
{
Exception ie = e.InnerException;
if (ie == null) break; // si no trae InnerException, me voy...
p.Push(ie.StackTrace);
p.Push(ie.Message);
e = (Exception)ie; // "apunto" a la siguiente InnerException
}
}
while(p.Count > 0)
Console.WriteLine("{0}", p.Pop());
}
y es horrible!!!! quiero evitar esos ciclos while( ) y no encuentro la forma :o(
si alguien sabe algo, será bienvenido el dato...
saludos,
maxi
La situación es la siguiente: tengo una Exception que se produce en la instalación, y mi tarea es recorrer todas las InnerException de ésta para generar un StackTrace "bien detallado" del error...
Ahora bien, mi manera de implementarlo fue la siguiente (aviso: es antiestético)
public static void Main()
{
Stack p = new Stack();
try
{
// acá lanzo un Exception con varias InnerException dentro
miFuncion1();
} catch (Exception e)
{
while (true)
{
Exception ie = e.InnerException;
if (ie == null) break; // si no trae InnerException, me voy...
p.Push(ie.StackTrace);
p.Push(ie.Message);
e = (Exception)ie; // "apunto" a la siguiente InnerException
}
}
while(p.Count > 0)
Console.WriteLine("{0}", p.Pop());
}
y es horrible!!!! quiero evitar esos ciclos while( ) y no encuentro la forma :o(
si alguien sabe algo, será bienvenido el dato...
saludos,
maxi
Valora esta pregunta


0