我有一个自定义异常类,其中包含一些附加字段。我希望将这些写在ToString()
方法中,但是如果我实现自己的方法ToString()
,我会丢失一些其他有用的东西(比如编写异常类型名称、内部异常数据和堆栈跟踪)。
ToString()
为此类异常实现您自己的方法的最佳方式/模式是什么?理想情况下,它应该重用现有机制,但以类似于默认ToString()
实现的方式格式化。
更新:例如,将我的自定义字段添加或附加到 base.ToString() 文本并不理想,恕我直言
PimTool.Utilities.OERestServiceUnavailableException: test ---> System.InvalidOperationException: inner message
--- End of inner exception stack trace ---
at PimTool.Tests.Services.OE.OERestClientTests.ExceptionsLogging() in D:\svn\NewPimTool\PimTool.Tests\Services\OE\OERestClientTests.cs:line 178,
StatusCode=0, message='test', requestId='535345'
表示自定义字段写在(可能很长)异常描述的末尾。另一方面,我希望异常类型是描述中写入的第一个信息。
更新2:我已经为此实施了一个解决方案,请在下面寻找我自己的答案。