当前位置:编程学习 > C#/ASP.NET >>

C#程序报错跟踪的方法

自己写的一支程序,应为经常抱程序遇到问题需要关闭。又不提示是哪个地方遇到问题
所以我就一直把源码打开,因为程序一般是运行到一会再报错。
报错的时候,跳到了构造函数那,错误提示索引超出了界限
可是又不告诉我在哪个函数里头
这怎么跟呀。
在构造函数那,我不知道怎么跟了
大家有好的方法吗?、
谢谢了 --------------------编程问答-------------------- 添加try catch
AppDomain currentDomain = AppDomain.CurrentDomain;   
currentDomain.UnhandledException += new UnhandledExceptionEventHandler(UnhandledExceptions);   
  private void UnhandledExceptions(object sender, UnhandledExceptionEventArgs args)   
  { } --------------------编程问答-------------------- wuyq11,您好!
关键是我不知道在什么地方添加try catch呀
都不知道程序在什么地方抱的错误。
难道对构造函数try吗?
小弟技术不怎么样,麻烦你了 --------------------编程问答-------------------- 加我QQ:40491931.我可以远程帮你看看或许能决,如果不喜欢远程那你就把源码发给我,我帮你看看,前提是我只装了VS2008,如果你装的是VS2010那你还是不要发过来了,我找不开的,更不用提调试了.上面所说的try catch注标不注本,要根本解决问题还是要看代码逻辑!

虽然我也是菜鸟,但我发现我对解决错误却很犀利(同水平而言,在高手面前我这点功夫小儿科啦).

就算我没帮你解决这个问题,咱们做个朋友以后也可以多交流啦,嘿嘿 --------------------编程问答-------------------- 参考一下:
   楼主应该先学会调试.
   1,先在各关卡设置断点.(哪个关卡?多人出入的地方-边检)
   2,按F5.(为什么,因为国际惯例).
   3,按F10,段调试.(同上)
   4,给分,(同上). --------------------编程问答-------------------- 都说了,不是程序一启动就报错,这个错是随机的,可能运行一天都没抱,有可能运行半个小时后报
所以设断点那是不现实的,能那样跟我早 就跟出来了
关键它随机的,报错的时候,又不是直接跳到错误的地方。它跳到构造函数那。 --------------------编程问答-------------------- 把出错信息帖出来好吗?

引用楼主 a8264621 的回复:
自己写的一支程序,应为经常抱程序遇到问题需要关闭。又不提示是哪个地方遇到问题
所以我就一直把源码打开,因为程序一般是运行到一会再报错。
报错的时候,跳到了构造函数那,错误提示索引超出了界限
可是又不告诉我在哪个函数里头
这怎么跟呀。
在构造函数那,我不知道怎么跟了
大家有好的方法吗?、
谢谢了
--------------------编程问答-------------------- --------------------编程问答-------------------- 建议你写的每个代码块 都try catch下 --------------------编程问答-------------------- 代码不严谨。。。。。。。。。。。。。。 --------------------编程问答-------------------- 把常用到的数据变化记录在日志中,从日志中找数据变化情况。 --------------------编程问答-------------------- 我碰到过跟你类似的问题,程序有时有问题有时没有问题,不知道出错在哪里,后来用这样的方法解决的:
在你认为可能出错的语句前面和后面用System.Diagnostics.Debug.WriteLine()记录相关的信息,然后用debugview工具监视.如果你没有debugview,去下载一份和你操作系统对应的debugview. 记住: 在你运行程序前一定要把debugview打开,然后运行你的程序让它一直跑,直到程序出错,这时去debugview里看程序是运行到哪出的错.如:

System.Diagnostics.Debug.WriteLine("Before XX");

//你的代码XX

System.Diagnostics.Debug.WriteLine("After XX");


这样,正常情况下执行完你的代码XX后debugview里会有Before XX和After XX。如果程序出错时debugview里只有Before XX,那么肯定说明是在XX出错的。我曾经用线程模拟COM+时出问题就是这样找出来的
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,