在C#中,要获取引发异常的行号,可以使用StackTrace
类。以下是一个示例:
using System;
namespace ExceptionExample
{
class Program
{
static void Main(string[] args)
{
try
{
TestMethod();
}
catch (Exception ex)
{
Console.WriteLine("异常信息:" + ex.Message);
Console.WriteLine("异常行号:" + GetExceptionLineNumber(ex));
}
}
static void TestMethod()
{
throw new Exception("这是一个测试异常");
}
static int GetExceptionLineNumber(Exception ex)
{
System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace(ex, true);
System.Diagnostics.StackFrame sf = st.GetFrame(0);
return sf.GetFileLineNumber();
}
}
}
在这个示例中,我们定义了一个TestMethod
方法,它会抛出一个异常。在Main
方法中,我们使用try-catch
语句捕获异常,并调用GetExceptionLineNumber
方法获取异常行号。GetExceptionLineNumber
方法使用StackTrace
类创建一个堆栈跟踪对象,并获取第一个堆栈帧。最后,我们使用GetFileLineNumber
方法获取异常行号。
请注意,这个示例仅适用于C#编程语言。如果您需要了解其他编程语言或云计算领域的知识,请告诉我。
领取专属 10元无门槛券
手把手带您无忧上云