官方文档:https://solidity.readthedocs.io/en/v0.5.4/control-structures.html#error-handling-assert-require-revert-and-exceptions 关于require及assert的用法官方文档叽里呱啦的说了很大,最终有一句话最有价值: 请注意, assert 式异常消耗了所有可用的调用 gas ,而从 Metropolis 版本起 require 式的异常不会消耗任何 gas。 所以只要碰到判断异常的时候,直接用require代替assert即可,我们搞程序的本来最不喜欢的就是人为去判断二选一的问题,官方也更加推荐使用require!