gpt4 book ai didi

c# - 在 C# 中显示的异常消息大小?

转载 作者:行者123 更新时间:2023-11-30 18:56:34 25 4
gpt4 key购买 nike

我必须向另一个系统输出一个包含 Exceptions 的文件,而另一个系统只接受单行异常,它更像是一个报告,我们需要对消息进行简短描述。

我计划只向输出显示 Exception.Message,但记录 Exception.ToString 以进行记录。

Exception Message 的大小总是 1 行吗?是否有替代方法来显示这些总是在一行中的错误消息?

此外,我的假设是 Exception.ToString 也包含 StackTrace 吗?

最佳答案

Exception.Message 是一个字符串。因此,绝对不能保证它始终保持在一条线上。大多数基本异常消息会,有些不会,并且自定义异常会期望任何内容。

如果绝对需要一行简短的描述,那么您可能需要考虑使用 SubstringReplace 来满足这些要求:

var maxLength = 50; // set to desired value
var strippedMessage = exception.Message;

strippedMessage = strippedMessage.Replace("\n", string.Empty); // removes newline char
strippedMessage = strippedMessage.Replace("\r", string.Empty); // removes carriage return char

if (strippedMessage.Length > maxLength)
strippedMessage = strippedMessage.Substring(0, maxLength - 3) + "..."; // reduces the message's size

三个额外的点将为您提供有关消息已被删除的线索。不用说,这里可能会丢失一些相关信息。

您还应该知道 InnerException(如果不为 null)通常比 Exception 实例更相关。因此,如果您的“短消息”旨在让您快速了解真正的问题是什么,您可能需要检查一下。

还有 ToString 通常包含 StackTrace ,以及嵌套的内部异常 ToString 结果。我说通常是因为 ToString 方法是可重写的,所以有可能是一些觉得有创意的开发人员决定用完全不同的东西在自定义异常上重写它。

关于c# - 在 C# 中显示的异常消息大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22207770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com