catch (Exception ex)时,我怎么知道是哪行报错?

一休宗纯 2010-07-25 10:36:43
如题。 我虽然可能知道 ex.Message 但有时不知道是哪一行报出来的
...全文
1633 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
一休宗纯 2010-07-25
  • 打赏
  • 举报
回复
都是高手啊!
我用  string sNum = ex.StackTrace.Substring(ex.StackTrace.IndexOf("行号"), ex.StackTrace.Length - ex.StackTrace.IndexOf("行号"));

测试成功了
wuyq11 2010-07-25
  • 打赏
  • 举报
回复
try
{
throw new Exception();
}
catch (Exception e)
{
Console.WriteLine(e.StackTrace);
}
兔子-顾问 2010-07-25
  • 打赏
  • 举报
回复

static void Main(string[] args)
{
try
{
throw new NullReferenceException();
}
catch (Exception ex)
{
Console.WriteLine(System.Text.RegularExpressions.Regex.Match(ex.StackTrace, @"行号\D+\d+").Value);
}
Console.ReadKey();
}
Zhanlixin 2010-07-25
  • 打赏
  • 举报
回复
ex.StackTrace.Substring(ex.StackTrace.IndexOf("行号"), ex.StackTrace.Length - ex.StackTrace.IndexOf("行号"))

//或者
Regex.Match(ex.StackTrace, "行号\\s(?<LineNumber>\\d*)").Groups["LineNumber"].Value

CatchNull 2010-07-25
  • 打赏
  • 举报
回复
错误信息都打印出来了还不知道哪行出错噶?


实在不行你就加 return ,再实在不行你就加 断点,再实在不行你就一行一样的注释不就晓得了,

你直接打印ex嘛,不只是打印Message
mayonglong 2010-07-25
  • 打赏
  • 举报
回复
那就单步调试

或者不要讨try{}catch,出错的话,vs会定位到那一行

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧