gpt4 book ai didi

c# - 在 C# 中构建异常

转载 作者:太空狗 更新时间:2023-10-30 00:35:24 24 4
gpt4 key购买 nike

我继承了一个使用编译日志库的代码库。我无法更新日志记录库。该库具有记录异常详细信息的方法。该方法将单个异常作为参数。我现在正在构建一个将绑定(bind)到该系统的移动应用程序。

在这个移动应用程序中,我有一段代码可以处理未捕获的异常。我需要在服务器中记录这些。但是现在,我只能以字符串格式通过网络传递详细信息。因此,我有一个服务可以接受错误消息、堆栈跟踪和杂项作为字符串。我需要获取这些字符串并将它们转换为异常,以便我可以将它们传递到我预先存在的库中。

如何将消息和堆栈跟踪作为字符串并将它们捆绑到异常中?这里的挑战是 Message 和 StackTrace 是只读的。

谢谢!

最佳答案

StackTrace 是虚拟的,因此您可以像这样定义自己的 Exception:

public class MyException : Exception {
private readonly string stackTrace;
public override string StackTrace { get { return this.stackTrace; } }
public MyException(string message, string stackTrace) : base(message) {
this.stackTrace = stackTrace;
}
}

然后将 MyException 的实例传递给您的日志记录代码。这使您可以完全控制 MessageStackTrace 的值。

关于c# - 在 C# 中构建异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4851634/

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