require:用于在执行前验证输入和条件; revert:用于直接触发回退,可自定义异常处理,通常情况代码更加复杂; assert:用于检查不应该为假的代码,失败的断言可能意味着代码层面存在错,通常放在代码的末尾,防止不该发送的情况出现。。
assert(condition); require(condition, description) assert() 将消耗所有剩余的Gas,并恢复所有的操作。