我正在编写一个类,以便以专业的方式处理异常。我找到了以下方法:
internal string GetData(Exception x)
{
try
{
return
"Message : " + GetMessage(x) + Environment.NewLine +
"Name Space : " + GetNameSpace(x) + Environment.NewLine +
"Class Path : " + GetClassPath(x) + Environment.NewLine +
"Method Name : " + GetMethodName(x) + Environment.NewLine +
"Line number : " + GetLineNumber(x);
}
catch
{
return "";
}
}
可以使用substring
上的x.StackTrace
方法获取上述所有信息。我还需要一个信息,那就是:
什么命令正在上升异常?
例如,我需要看到引发异常的int.Parse("");
。
反正有吗?如果有人有源代码,我会感谢他/她给我一个链接。
提前致谢。
答案 0 :(得分:0)
这不是很容易做到,但可以用一些摆弄。
以下是一个示例调用堆栈:
at System.Number.StringToNumber(String str,NumberStyles options,NumberBuffer& number,NumberFormatInfo info,Boolean parseDecimal)
at System.Number.ParseInt32(String s,NumberStyles style,NumberFormatInfo info)
在C:\ ... \ Visual Studio 2015 \ Projects \ SO \ SO \ Program.cs中的SO.Program.Main(String [] args):第29行
您注意到调用堆栈中第一行的行号是我们代码中的最后一行。因此,如果您解析堆栈跟踪的每一行,然后检查它是否包含行号,您知道上面的行是您已经进行的方法调用。这并没有给出该行的确切代码,但至少应该给你方法签名。