付费视频,请购买课程( ¥2,000.00 )后再观看

Solidity/EVM 错误处理

5次播放
17小时前

视频 AI 总结: 该视频主要讲解了Solidity/EVM 中错误处理机制,与其他语言不同,EVM 在遇到错误时会回滚所有之前的状态变更,除非错误被程序处理。Solidity 提供了几种错误处理方式,包括抛出错误让 EVM 回滚,以及使用 try-catch 捕获外部调用产生的错误。

关键信息:

  • EVM 的错误处理机制具有原子性,要么全部成功,要么全部失败,不会出现中间状态。
  • Solidity 中可以使用 requireassert 进行条件检查,条件不满足时会抛出异常。
  • assert 用于代码不应该到达的状态,而 require 用于检查外部条件。
  • 抛出错误时可以指定字符串或自定义错误类型,自定义错误类型 Gas 消耗更低。
  • try-catch 只能用于捕获外部调用产生的错误,不能捕获合约内部的错误。
  • try-catch 无法捕获 out-of-gas 错误和调用不存在合约的错误。