第六集:Solidity异常处理

  • throw:如果发生异常,消耗发送的所有gas,没有异常信息,回滚所有状态
  • require(bool condition):自行判断,如果不满足条件也会产生异常,返回未使用的gas,一般来说尽可能的只用require,回滚已修改状态
  • assert(bool condition):如果产生异常,返回剩余未使用的gas,回滚(已修改的状态)
  • revert():终止执行,回滚所有状态。

在智能合约开发中,如果要对异常进行处理

  • 尽早抛出异常
  • 在函数中,针对异常的发生组织代码顺序
  1. 检查所有的前置条件
  2. 修改合约状态
  3. 和其他合约进行交互

猜你喜欢

转载自blog.csdn.net/super_lixiang/article/details/83148026