本文介绍 solidity
中三种抛出异常的方法:error
,require
和assert
。
写智能合约经常会出bug
,solidity
中的异常命令帮助我们debug
。
1.Error
error
是solidity 0.8.4版本
新加的内容,方便且高效(省gas
)地向用户解释操作失败的原因,同时还可以在抛出异常的同时携带参数,帮助开发者更好地调试。
可以在contract
之外定义异常。
比如,定义一个TransferNotOwner
异常,当用户不是代币owner
的时候尝试转账,会抛出错误:
error TransferNotOwner(); // 自定义error
也可以定义一个携带参数的异常,来提示尝试转账的账户地址:
error TransferNotOwner(address sender); // 自定义的带参数的error
在执行当中,error