代码之家  ›  专栏  ›  技术社区  ›  asfsadf

ASP.NETMVC2-尝试/捕获(抛出?)的数量和位置阻碍

  •  1
  • asfsadf  · 技术社区  · 16 年前

    从我的控制器那里我得到了

    CreateInvitation(fromUser, toUser);
    

    它调用了我的BLL方法

    public static Invitation CreateInvitaton(User fromUser, User toUser)
    {
        try
        {// see if toUser exists, then create the invitation}
        catch
        {// throw something, maybe?}
    }
    

    我是否也需要将控制器的调用包装在try/catch块中,或者这是多余的?

    也许我根本不需要BLL方法中的try/catch块,而只需要控制器中的try/catch块?

    我在这里看了很多可能的组合,但不知道正确的组合是什么。

    2 回复  |  直到 16 年前
        1
  •  1
  •   mnemosyn    16 年前

    当且仅当异常指示 例外的 和

    悲观锁 . 需要锁,因为在另一个(后台)应用程序读取对象时从web应用程序写入对象可能会导致灾难。这确实是个例外,因为这种情况很少发生。而且,我事先对此无能为力(因为锁可能是在执行下一行之前获得的)。但是,我可以在几毫秒内重试,因为我知道再次释放对象的可能性很大。不过,所有这些并不是在控制器中发生的,而是在服务类中发生的。

    不要对预期的条件使用异常(例如,输入无效)。

    不 throw; 不 throw ex; )

        2
  •  2
  •   James Curran    16 年前

    try 
    {...} 
    catch 
    { 
      // do something here.
       throw;
    } 
    

    那么就需要试一试了。