【Require】

require() 用於檢驗簡單的條件:

  • 合理的輸入

  • 執行前必要的簡單條件

  • 回傳一則訊息

pragma solidity ^0.8.11;

contract error {
    function testRequire(uint _i) public pure {
        require(_i > 10, "Input must be greater than 10");
    }
}

Require 會被觸發的情況及性質如下:

  • require(X) 其中 X 為false

  • 經由message呼叫函數,但此函數並沒有被適當地完成

    • 不包含Low-Level的函式呼叫

  • 使用外部函數呼叫了一個沒有任何程式碼的合約

  • 合約裡面的物件沒有被宣告payable modifier卻接收到了Ether

  • 唯讀的函式(getter function)接收到了Ether

  • Address.transfer() 執行失敗

Last updated