public static bool FillIn()
        {
            bool success = false;
            SqlConnection con = GetConnection();
            con.Open();
            SqlTransaction tran = con.BeginTransaction();
            try
            {
                if(!Order.New())
                  {
                     throw new Exception("Order Create failed!");
                  }
                  else if(!nOrder.Update())
{
                  throw new Excetpion("Norder Update failed!");
}
            }
            catch
            {
                tran.Rollback();
            }
            finally
            {
                con.close();
            }
            return success;
        }
失败抛出异样合理吗?请高人指点!

解决方案 »

  1.   

    不用抛,直接rollback然后success=false就成了
      

  2.   

    这样做没问题,只是最后的success 应该根据一个失败与否的标志位来返回,不然你这个一直返回的都是false
      

  3.   

    try中间的throw没有必要,你好像没有记录日志,你抛了个自定义的异常没发挥任何作用,建议记下日志
      

  4.   

    你这种抛法没意义,浪费时间,最终被你自己的后续代码给处理了。
    你应该在catch的代码段中也抛出这个异常,向上传播这个异常才有意义。
    catch (Exception err )
    {
    tran.RollBack();
    throw err;
    }