Получить все сообщения об исключениях, включая InnerException в C#
Как я могу легко получить все сообщения об исключениях, включая InnerExceptions в C#, для вывода на консоль или, например, в журнал?
2 ответа
Самый простой способ сделать это - написать рекурсивную функцию:
Например:
public static string ExceptionMessages(Exception ex)
{
if (ex.InnerException == null)
{
return ex.Message;
}
return ex.Message + " " + ExceptionMessages(ex.InnerException);
}
Это выведет все сообщения в одну строку.
Обычно вы просто зацикливаетесь:
catch (Exception ex)
{
while (ex != null)
{
Console.Error.WriteLine(ex.Message);
ex = ex.InnerException;
}
}