错误捕捉问题

waki 2003-08-07 04:50:52
在ASP.NET中使用错误捕捉
try
{...}
catch(System.Exception e)
{...}
我想在catch块中获得到底是哪行源代码出错的,可以吗?
...全文
22 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
waki 2003-08-08
  • 打赏
  • 举报
回复
好象不行,找不到,因为已经没有源程序存在了,我想可能不太可能得到源程序的出错行号,最多只能得到IL的出错行号吧?
另有个问题,如果是自定义的异常类,是否只能自行抛出来触发异常?是否能让系统来自动触发呢?逻辑如何定义?怎样让CLR知道呢?
waki 2003-08-08
  • 打赏
  • 举报
回复
多谢 panyee(快乐王子),试试先
jinye 2003-08-07
  • 打赏
  • 举报
回复
e.Message来得到错误后就可以分析是那行出错。
panyee 2003-08-07
  • 打赏
  • 举报
回复
要取得行数,在Exception中没有单独定义它,但取得ex.ToString()后,它最后几个字符就是出错的行号

所以取错误字符串最后一个空格后面部分应该是可以的
redfoxhuang 2003-08-07
  • 打赏
  • 举报
回复
throw new Exception(e.Message);不过好像没有确定到那一行,
其实这样的做法是定义出错后显示信息,避免让人看到上下的代码
LevinForum 2003-08-07
  • 打赏
  • 举报
回复
你可以使用ex.TargetSite来得到抛出异常的Method,
或者用ex.StackTrace得到异常的调用方法堆栈。
(如果有调试符号,那么StackTrace里是包含文件和行号的)
panyee 2003-08-07
  • 打赏
  • 举报
回复
string strErrLine = ex.ToString().Substring(ex.ToString().LastIndexOf(" ") + 1);
cyp503 2003-08-07
  • 打赏
  • 举报
回复
IE可以显示出错行的信息,包括出错的行数和错误原因

要把IE -》Internet选项->高级

里的 显示每个脚本错误信息 勾上

如果是要保存错误信息


try{}
catch(Exception ex)
{
//获取ex的属性
}
waki 2003-08-07
  • 打赏
  • 举报
回复
就是想自己来封装一下,但E里面没有出错行的信息,那是怎么来的?
cyp503 2003-08-07
  • 打赏
  • 举报
回复
干脆把
try
{...}
catch(System.Exception e)
{...}
去掉

就会准确告诉你是那一行错误

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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