用try-catch语句来处理预防异常的时候,不只是将错误显示,还希望错误信息尽可能的详细。
比如:错误发生在哪个方法里,哪一行,哪个类文件等。
这里提供一种方法。
事例代码:
class Program
{
static void Main(string[] args)
{
try
{
GT();
}
catch (Exception ex)
{
Console.WriteLine("空间名:" + ex.Source + ";" + '\n' +
"方法名:" + ex.TargetSite + '\n' +
"故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' +
"错误提示:" + ex.Message);
}
Console.ReadKey();
}
/// <summary>
/// 出错的方法
/// </summary>
private static void GT()
{
int i = 0;
int j = 10 / i;
}
}
效果:
关键代码:
catch (Exception ex)
{
Console.WriteLine("空间名:" + ex.Source + ";" + '\n' +
"方法名:" + ex.TargetSite + '\n' +
"故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' +
"错误提示:" + ex.Message);
}