验证-尽早抛出异常

时间:2020-01-09 10:35:59  来源:igfitidea点击:

当收到需要验证的输入才能使用之前,请在使用任何输入之前先验证所有输入。在确认所有输入数据之前,我们不应在应用程序或者连接的系统中更改任何状态。这样,我们可以避免使应用程序处于半有效状态。

例如,在将用户和地址插入数据库中两个不同表的DAO方法中,请执行以下操作:

check if user already exists
  validate user
  validate address

  insert user
  insert address

不要这样:

check if user already exists
  validate user
  insert user

  validate address
  insert address

如果我们这样做,那么地址实际上是无效的,那么我们仍将用户插入了系统中。用户更正地址并重试注册后会发生什么?他会被告知他的用户已经存在,对吗?

该问题不仅与数据库插入有关。通常,请在使用任何输入之前先对其进行验证,以避免使应用程序处于半有效(=未知)状态。