第140篇 solidity 中的异常
Posted wonderBlock
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第140篇 solidity 中的异常相关的知识,希望对你有一定的参考价值。
本文介绍 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
必须搭配revert
(回退)命令使用:
function transferOwner1(uint256 tokenId, address newOwner) public
if(_owners[tokenId] != msg
以上是关于第140篇 solidity 中的异常的主要内容,如果未能解决你的问题,请参考以下文章