Есть ли в C # метод, эквивалентный Java, Exception.printStackTrace()
или мне нужно что-то писать самому, работая с InnerExceptions?
c#
.net
exception
stack-trace
Epaga
источник
источник
Я хотел бы добавить: если вы хотите распечатать стек вне исключения, вы можете использовать:
источник
Как говорит Дрю, это делает простое преобразование исключения в строку. Например, эта программа:
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"); } }
Производит этот вывод:
источник
http://msdn.microsoft.com/en-us/library/system.exception.stacktrace.aspx
Console.WriteLine (myException.StackTrace);
источник
источник
Нет ли C # Logging API, который мог бы принимать исключение в качестве аргумента и обрабатывать все за вас, как это делает Java Log4J?
Т.е. используйте Log4NET.
источник
Поскольку ответ @ ryan-cook у меня не сработал, если вы хотите распечатать трассировку стека без исключения, вы можете использовать:
System.Diagnostics.StackTrace stackTrace = new System.Diagnostics.StackTrace(); Console.WriteLine(stackTrace)
К сожалению, это невозможно сделать в PCL или в .NETStandard Library.
источник
Также посмотрите Log4Net ... это порт Log4J для .NET.
источник