void SendGradeMessage()
{
while(this.appRun)
{
while(this.SendGrade)
{
 
System.Data.SqlClient.SqlConnection cnnLs=new System.Data.SqlClient.SqlConnection();
cnnLs.ConnectionString=Enjoy.DALSqlServer.SqlHelper.ConnectString;
cnnLs.Open();                               ...
这是我的线程运行后所调用的方法,可以如果cnnLs.Open()这一句出错了它不会抛出异常,而是直接
结束线程,什么都不会提示。不知有没有哪位碰到过这种情况。

解决方案 »

  1.   

    啊,为什么?不能在线程中try-catch吗====CSDN 小助手 V2.0 2005年10月16日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/10/16/504620.aspx
    下载:http://szlawbook.com/csdnv2/csdnv2.rar为神六喝彩,向所有科技工作者致敬!
    拒绝日货。
      

  2.   

    通过以下两个事件来扑捉程序异常。下面是我程序中的一段代码,
    AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
    Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);

    private static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
    {
    //使用错误发布器
    DotnetExceptionManager.Publish(e.Exception);
    } private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
    {
                //使用错误发布器
    DotnetExceptionManager.Publish(new Exception(e.ExceptionObject.ToString()));
    if(e.IsTerminating == true)
    {
    if(Initialized == true)
    {
    //保存数据,这里有可能损毁数据库,启用备份数据库
    DataManager.WriteDataToFile();
    }

    }

    }
      

  3.   

    注册以上两个事件来扑捉异常在《Microsoft .NET框架程序设计(修订版)》中有讲到.