¿Existe un método equivalente en C # al de Java Exception.printStackTrace()
o tengo que escribir algo yo mismo, trabajando en las InnerExceptions?
c#
.net
exception
stack-trace
Epaga
fuente
fuente
Me gustaría agregar: Si desea imprimir la pila fuera de una excepción, puede usar:
fuente
Como dice Drew, simplemente convertir la excepción en una cadena hace esto. Por ejemplo, este programa:
using System; class Test { static void Main() { try { ThrowException(); } catch (Exception e) { Console.WriteLine(e); } } static void ThrowException() { try { ThrowException2(); } catch (Exception e) { throw new Exception("Outer", e); } } static void ThrowException2() { throw new Exception("Inner"); } }
Produce esta salida:
fuente
http://msdn.microsoft.com/en-us/library/system.exception.stacktrace.aspx
Console.WriteLine (myException.StackTrace);
fuente
catch (Exception ex) { Console.WriteLine(ex.StackTrace); }
fuente
¿No existe una API de registro de C # que pueda tomar una excepción como argumento y manejar todo por usted, como lo hace Log4J de Java?
Es decir, use Log4NET.
fuente
Como la respuesta de @ ryan-cook no funcionó para mí, si desea imprimir el seguimiento de la pila sin tener una excepción, puede usar:
System.Diagnostics.StackTrace stackTrace = new System.Diagnostics.StackTrace(); Console.WriteLine(stackTrace)
Desafortunadamente, esto no se puede hacer en una PCL o en una biblioteca estándar .NET
fuente
También mire Log4Net ... es un puerto de Log4J a .NET.
fuente