solidity系列教程七错误处理

更新时间:2023-05-16 20:05:52 阅读: 评论:0

剩余时间solidity系列教程七错误处理
错误处理(3种):
all by mylf 原唱
asrt(bool condition):不满⾜条件,将抛出异常
ljbfasrt(msg.nder == owner);
require(bool condition):不满⾜条件,将抛出异常
require(bool condition, string message):如果条件不满⾜则撤销状态更改 - ⽤于检查由输⼊或者外部组件引起的错误,可以同时提供⼀个错误消息。
require(msg.nder == owner);
高考状元的学习方法revert() 抛出异常
revert(string reason):终⽌运⾏并撤销状态更改,可以同时提供⼀个解释性的字符串。
if(msg.nder != owner) { revert(); }
1.条件检查
Solidity提供了asrt和require来进⾏
文明演讲稿
瓶颈什么意思require: require函数来检查输⼊变量或合约状态变量是否满⾜条件以及验证调⽤外部合约返回值。可以有返回值require(condition, 'Something bad happened');
asrt: asrt函数通常⽤来检查(测试)内部错误
注:同样作为判断⼀个条件是否满⾜的函数,require会退回剩下的gas,⽽asrt会消耗所有的gas。
2.触发异常
Solidity提供了revert,throw来触发异常:
throw:关键字抛出异常(从0.4.13版本,throw关键字已被弃⽤,将来会被淘汰。)回滚所有状态改变,返回”⽆效操作代码错误”,⽽且消耗掉剩下的gas
revert:函数可以⽤来标记错误并回退当前调⽤,允许返回⼀个数值,将剩余gas返还调⽤者
3.如何选择
sterilizerrequire()函数⽤于:
disguid
(1).确认有效条件,例如输⼊,
kikuya
(2).确认合约声明变量是⼀致的
(3).从调⽤到外部合约返回有效值
revert()函数⽤于 :
处理与 require() 同样的类型,但是需要更复杂处理逻辑的场景
中华人民共和国英文如果有复杂的 if/el 逻辑流,那么应该考虑使⽤ revert() 函数⽽不是require()。
asrt()函数⽤于:预防本不该发⽣的事情,如果发⽣就意味着合约中存在需要修复的bug(⽐如asrt(1 > 2))。⼀般地,尽量少使⽤ asrt 调⽤,⼀般asrt 应该在函数结尾处使⽤

本文发布于:2023-05-16 20:05:52,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/111050.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:错误   合约   条件   函数   需要
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图