验证-尽早抛出异常
时间: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
如果我们这样做,那么地址实际上是无效的,那么我们仍将用户插入了系统中。用户更正地址并重试注册后会发生什么?他会被告知他的用户已经存在,对吗?
该问题不仅与数据库插入有关。通常,请在使用任何输入之前先对其进行验证,以避免使应用程序处于半有效(=未知)状态。