我想知道使用腰带和大括号(吊带)方法进行编程 - 尤其是数据验证 - 是否是一种好习惯。这来自以下示例。
我正在创建一个表单,并向所有字段添加了侦听器,这意味着OK
只有在表单中的所有字段都具有有效值时才启用该按钮。然后我正在编写OK
单击按钮时运行的代码。
我悲观的一面认为,Belt and Braces 永远不会伤害任何人,如果我的表单逻辑出现错误,再次验证表单也无妨。
但是,如果验证失败,我不知道要输入什么。如果我做这样的事情:
if (! form.isValid()) {
displayErrorMessage();
}
然后我必须创建代码来显示不应该显示的错误消息。将来维护此代码的任何人都会担心并且可能会对此在理论上不必要的对话感到困惑。我想要的最后一件事是有人想知道为什么这个特定的对话框从不显示。
规模的另一端的一个选项是:
if (! form.isValid()) {
throw new RuntimeException("This should never happen!");
}
坦率地说,即使打字我也觉得很脏,但也许有一个很好的理由使用它,但我错过了。
所以最后我结束了:
assert form.isValid();
然而,它的缺点是它不是真正的腰带和大括号,因为大括号在运行时不存在,所以如果代码中有错误,我的表单的裤子仍然会掉下来。
所以也许我根本不应该有额外的验证,但我仍然有一部分认为它不会受到伤害。
我很想听听你在类似情况下会做什么。
(编辑:问题是问什么是确保表单返回有效数据的最佳方法。假设表单的输出在它最终进入数据库之前再次验证等等。)