我有一个节目。如果发生异常,我会在excel工作表的单元格中打印异常消息。我可以打印FaultException.Detail.ErrorCode和FaultException.Detail.Message吗?我如何获取这两个东西并打印它??我发布了一个示例代码
public int CreateTask(int row)
{
try
{
Console.WriteLine("Invoking CreateTask method");
Console.WriteLine("-----------------------------------");
m_taskID = taskClient.CreateTask(m_tInstance);
Console.WriteLine("Task create successfully:ID=" + m_taskID.ToString());
Console.WriteLine("-----------------------------------");
ExcelRecorder(null, row);
}
catch (Exception ex)
{
ExcelRecorder(ex.Message, row);
}
finally
{
GC.Collect();
}
return m_taskID;
} 如何修改ExcelRecorder()方法以获取FaultException.Detail.ErrorCode和FaultException.Detail.Message?
发布于 2012-09-17 15:10:38
将此子句添加到现有的catch子句之上:
catch (FaultException<COMException> fex)
{
string msg = fex.Detail.Message;
string code = fex.Detail.ErrorCode.ToString();
ExcelRecorder(String.Concat(msg, " - ", code), row);
}我假设您需要在TDetail为COMException的地方捕获异常System.ServiceModel.FaultException<TDetail>。
发布于 2012-09-17 15:18:20
我同意评论,你的问题确实需要更多的代码才能正确回答,但从你提供的内容来看,你的问题似乎是ExcelRecorder异常,而不是FaultException,所以你不能访问它的Detail属性来写入电子表格。
根据您的代码中是否在其他地方使用了ExcelRecorder,您始终可以修改ExcelRecorder的构造函数以获取FaultException对象,或者创建第二个ExcelRecorder构造函数来获取FaultException对象并相应地记录日志。
不过,我真的需要看看ExcelRecorder的代码才能有进一步的帮助。
https://stackoverflow.com/questions/12454416
复制相似问题