有没有办法让语句在c#中抛出异常?

时间:2016-02-22 12:29:31

标签: c# exception-handling

我正在编写一个类,以便以专业的方式处理异常。我找到了以下方法:

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("");

反正有吗?如果有人有源代码,我会感谢他/她给我一个链接。

提前致谢。

1 个答案:

答案 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行

您注意到调用堆栈中第一行的行号是我们代码中的最后一行。因此,如果您解析堆栈跟踪的每一行,然后检查它是否包含行号,您知道上面的行是您已经进行的方法调用。这并没有给出该行的确切代码,但至少应该给你方法签名。