首页 > 解决方案 > 这个异常格式化函数在内置的 ToString() 方法上添加了什么值

问题描述

我在阅读我们的大型代码库时遇到了这个用于格式化异常的函数:

    private static string FormatException(Exception ex)
    {
        var errorMessage = new StringBuilder();
        errorMessage.AppendLine($"ErrorMessage : {ex.Message}");
        if (ex.Data.Count > 0)
        {
            var additionalMessage = new StringBuilder();
            foreach (var key in ex.Data.Keys)
            {
                additionalMessage.Append($" {key} : {ex.Data[key]}");
            }
            errorMessage.AppendLine($"AdditionalMessage : 【 {additionalMessage} 】");
        }
        if (!string.IsNullOrWhiteSpace(ex.StackTrace))
        {
            errorMessage.AppendLine($"StackTrace : {ex.StackTrace}");
        }
        if (ex.InnerException != null)
        {
            errorMessage.AppendLine($"InnerException : {ex.InnerException.ToJson(false, true)}");
        }
        return errorMessage.ToString();
    }

乍一看,在我看来,内置ToString()方法并没有提供任何真正的价值,因为信息只是要运行写入日志文件。

我是否在ToString()方法中遗漏了一些微妙的东西,需要确保Exception's完全收集信息。

标签: c#exception

解决方案


推荐阅读