我继承了一个使用编译日志库的代码库.我无法更新日志库.此库具有记录异常详细信息的方法.该方法将单个Exception作为参数.我现在正在构建一个与此系统相关的移动应用程序.
在这个移动应用程序中,我有一个代码块来处理未捕获的异常.我需要在服务器中记录这些.但现在,我只能以字符串格式通过网络传递详细信息.因此,我有一个服务接受错误消息,堆栈跟踪和杂项作为字符串.我需要获取这些字符串并将它们转换为Exception,以便我可以将它们传递给我之前存在的库.
如何将消息和stackTrace作为字符串并将它们捆绑到异常中?这里的挑战是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;
}
}
Run Code Online (Sandbox Code Playgroud)
然后将实例传递MyException给您的日志代码.这样,您的价值完全控制Message和StackTrace.