记录完整异常详细信息(包括所有可能的内部异常)的最佳实践是什么?
目前,我使用以下代码:
try
{
//some code that throws an exception
}
catch(Exception ex)
{
do
{
Console.WriteLine(ex.Message+ex.StackTrace);
ex=ex.InnerException;
}while(ex!=null)
}
是否有任何情况下此代码可能会失败?
你有没有尝试过只使用ex.ToString()
?它提供了诊断所需的大部分(如果不是全部)数据 - 包括消息详细信息、堆栈跟踪和内部异常:
From MSDN http://msdn.microsoft.com/en-us/library/system.exception.tostring.aspx:
ToString 返回当前异常的表示形式
旨在被人类理解。异常包含的地方
文化敏感数据,ToString 返回的字符串表示形式
需要考虑当前的系统文化。虽然
对返回字符串的格式没有确切的要求,
它应该试图反映对象所感知的价值
用户。 ToString 的默认实现获取名称
抛出当前异常的类、消息、结果
对内部异常调用 ToString,以及调用的结果
环境.StackTrace。如果这些成员中的任何一个为 null,则其值为
不包含在返回的字符串中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)