浅谈Solidity: 15. Error的三个用法Require,Revert, Assert

写智能合约经常会出bug,solidity中的Error命令帮助我们debug,Error是solidity 0.8版本新加的内容,方便且高效(省gas)地向用户解释操作失败的原因。在执行当中,error必须搭配revert(回退)命令使用。

Require:用于在执行前验证输入和条件。

Revert:和Require类似。

Assert:用于检查不应为假的代码。 断言失败可能意味着存在错误。一般用于程序员写程序debug。

三种方法的gas比较:我们比较一下三种抛出异常的gas消耗,通过remix控制台的Debug按钮,能查到每次函数调用的gas消耗分别如下:error方法gas消耗:24445。require方法gas消耗:24743。assert方法gas消耗:24446。我们可以看到,error方法gas最少,其次是assert,require方法消耗gas最多!因此,error既可以告知用户抛出异常的原因,又能省gas,大家要多用!(注意,由于部署测试时间的不同,每个函数的gas消耗会有所不同,但是比较结果会是一致的。)

结论:error既可以告知用户抛出异常的原因,又能省gas。

我是温驭臣,一个Solidity的开发学习者,以上是我的简单总结,如果有缺陷,希望在评论区看到您的补充。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容