Получить все сообщения об исключениях, включая 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;
    }
}
Другие вопросы по тегам