付费视频,请购买课程( ¥2,000.00 )后再观看
Solidity/EVM 错误处理
3次播放
7小时前
视频 AI 总结: 该视频主要讲解了Solidity/EVM 中错误处理机制,与其他语言不同,EVM 在遇到错误时会回滚所有之前的状态变更,除非错误被程序处理。Solidity 提供了几种错误处理方式,包括抛出错误让 EVM 回滚,以及使用 try-catch 捕获外部调用产生的错误。
关键信息:
- EVM 的错误处理机制具有原子性,要么全部成功,要么全部失败,不会出现中间状态。
- Solidity 中可以使用
require
和assert
进行条件检查,条件不满足时会抛出异常。 assert
用于代码不应该到达的状态,而require
用于检查外部条件。- 抛出错误时可以指定字符串或自定义错误类型,自定义错误类型 Gas 消耗更低。
try-catch
只能用于捕获外部调用产生的错误,不能捕获合约内部的错误。try-catch
无法捕获 out-of-gas 错误和调用不存在合约的错误。