项目我完成了。但是此程序生成exe 运行后不能存在出错跳过处理!我是C#初级学习者。很多异常没有处理的。所以暂时可能存在未知异常!我现在这EXE在运行后有时候出现了出错(中断了某些线程,但是还有线程会运行的。) 出现在的这些出错我想知道是在哪?关键是这个运行的EXE不是在我的电脑调试的,是给客户用才知道,我本机无法很完整地调试!!!==========================================我是想知道我的此EXE 文件在运行中出错的地方是在哪里?哪一行就好,方便我修改源码即可!

解决方案 »

  1.   

    记录日志,把可能长生错误的地方,使用catch,try,然后日志写入文件
      

  2.   

    在mian()函数中添加下面的事件实现
                Application.ThreadException+=new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
    然后在Application_ThreadException方法中记录异常信息
            static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
            {
                //e.Exception.StackTrace: 获取当前异常发生时调用堆栈上的帧的字符串表示形式
                // e.Exception.Source:获取或设置导致错误的应用程序或对象的名称
                //e.Exception.Message:获取描述当前异常的消息
            }
      

  3.   

    按3楼高手指教,但是还是不会提示出出错信息! 异常了。程序会显示遇到XX关闭,问你调试还是关闭!但是出错信息没有告诉我知,以下是我的入口程序代码!
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Windows.Forms;
    using System.IO;namespace winPaodami
    {
        static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
               
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);            // 注册全局线程异常处理事件侦听 
                Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); 
                Application.Run(new frmLogin());        }        /// <summary> 
            /// 全局线程异常处理事件 
            /// </summary> 
            /// <param name="sender"> </param> 
            /// <param name="e"> </param> 
            static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
            {
                // 显示全局异常提示 
                WriteFile(e.Exception.Message);
                
            }         private const string FILE_NAME = "ErroLog.txt";
             public static void WriteFile(string str)
             {
                 StreamWriter sr;            
                 if (File.Exists(FILE_NAME)) //如果文件存在,则创建File.AppendText对象
                 {
                     sr = File.AppendText(FILE_NAME);
                 }
                 else   //如果文件不存在,则创建File.CreateText对象
                {
                     sr = File.CreateText(FILE_NAME);
                 }
                 sr.WriteLine(str);
                 sr.Close();
             }    }
    }