第140篇 solidity 中的异常

Posted wonderBlock

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第140篇 solidity 中的异常相关的知识,希望对你有一定的参考价值。

本文介绍 solidity 中三种抛出异常的方法:errorrequireassert

写智能合约经常会出bugsolidity中的异常命令帮助我们debug

1.Error

errorsolidity 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 中的异常的主要内容,如果未能解决你的问题,请参考以下文章

第125篇 笔记-solidity中的编码与解码

第143篇 solidity 中的 error-revert

第141篇 Try Catch

第127篇 solidity 中链表的实现

第151篇 Solidity 中的数组(Array)

第138篇 solidity 中的初始值