在设计中,有主程序、被调用的类,如数据库访问类,我想在访问数据时,如果出错,主程序中怎样才能读到数据访问类的错误,同时不堵塞主程序的运行?

解决方案 »

  1.   

    搂主可以这样:
    在类中
    public void _XXX( out string strMessage )
    try
    {
       _comm.Parameter.Add( "@Message", SqlDbType.nvarchar ).Direction = ParameterDirection.output;
       _comm.ExecuteNonQuery();
       strMessage = _comm.Parameter["@Message"].Value.Tostring();}
    catch( Exception Message )
    {
     strMessage = "发生数据库错,请于管理员联系
                  ( "+ _FormatMessage( Message.Message.ToString() ) +" )";
     }
      

  2.   

    再在调用该方法的页面中:
    调用方法._XXX( out strMessage );
    if( strMessage != "" ) Response.Write( strMessage );
    这样就行了。
      

  3.   

    被调用的类用throw ...来抛出异常,在主程序中用try{...}catch(Exception){MessageBox.Show(....)}来捕获异常。
      

  4.   

    class DB
    {public void Update()
    {
    try
    {}
    catch(Exception ex)
    {
    throw ex;//再丢出或用messagebox弹之
    }}
    }
      

  5.   

    如果在类中用catch(Exception ex)
    {
    throw ex;//再丢出或用messagebox弹之
    }在发生错误是会堵塞进程吗?
      

  6.   

    如果在类中用catch(Exception ex)
    {
    throw ex;//再丢出或用messagebox弹之
    }在发生错误是会堵塞进程吗?好像程序会停在那里等待错误处理
      

  7.   

    同意 mapserver(杨东)一般就是这两种解决方法  函数返回值或者用错误捕捉如果用错误捕捉 3tzjq(永不言弃) 说得很清楚。如果用返回值,可以类似这样
    public int method(paramaterslist)
    {
       int result=0;
       try
       {
       //try body
       } 
       catch(Exception e)
       {
         result=1;
         //...    }  return result;}调用时判断返回的值是0/1来决定错误与否