1. 程式人生 > >第六集:Solidity異常處理

第六集:Solidity異常處理

 

  • throw:如果發生異常,消耗傳送的所有gas,沒有異常資訊,回滾所有狀態
  • require(bool condition):自行判斷,如果不滿足條件也會產生異常,返回未使用的gas,一般來說盡可能的只用require,回滾已修改狀態
  • assert(bool condition):如果產生異常,返回剩餘未使用的gas,回滾(已修改的狀態)
  • revert():終止執行,回滾所有狀態。

在智慧合約開發中,如果要對異常進行處理

  • 儘早丟擲異常
  • 在函式中,針對異常的發生組織程式碼順序
  1. 檢查所有的前置條件
  2. 修改合約狀態
  3. 和其他合約進行互動