Solidity Steps
  • Learning Solidity
  • Step 1
    • 1: Introduction
    • 2: Data Types
    • 3: Functions
    • 4: Control Structures
    • 5: State Variable
    • 6: Local Variables
    • 7: Global Variables
    • 8: View Keyword
    • 9: Pure Keyword
  • STEP 2
    • 10: Immunable Keyword
    • 11: Events
    • 12: Condition
    • 13: While Loop
    • 14: Do While Loop
    • 15: For Loop
    • 16: Required
    • 17: Assert
    • 18: Revert
    • 19: Modifier
  • STEP 3
    • 20: Constructor
    • 21: Mapping
    • 22: Array
    • 23: Enum
    • 24: Structs
    • 25: Data Location
    • 26: Inheritance
    • 27: The Shadowing Effect
    • 28: Super Keyword
    • 29: Visibility
  • STEP 4
    • 30: Interface
    • 31: Abstract Contract
    • 32: Payable
    • 33: Using type()
    • 34: Sending Ether
    • 35: Receive
    • 36: Fallback
    • 37: Call
    • 38: DelegateCall
    • 39: Calling Other Contracts
  • STEP 5
    • 40: Factory Contract
    • 41: Proxy Contract
    • 42: Create2
    • 43: Try and Catch
    • 44: Solidity Library
    • 45: ABI Encoded
    • 46: ABI Decoded
    • 47: Keccak256
    • 48: Function Signature Hash
  • TIPS
    • Tips: Solidity by "Immunable"
    • Tips: Truffle Tutorial
    • Tips: Microblog Dapp
    • Tips: Reentrancy
    • Tips: Slither Tutorial
    • Tips: Remix Tutorial
    • Tips: Hardhat Tutorial
  • CAREER
    • 💲Cover Letter
    • 💲Resume
  • ABOUT
    • Contact me
Powered by GitBook
On this page
  1. STEP 2

18: Revert

Revert is an important keyword in the Solidity programming language. It allows developers to handle errors that occur during execution of a contract. It is used to terminate and revert a contract, and provides a reason for the termination.

Syntax The syntax of the revert keyword is as follows:

revert(message);

Where message is an optional string that can be used to provide a reason for the revert.

  • Example 1 Below is an example of a contract that uses revert to terminate an execution if a requirement is not met.

contract RevertExample {    
    function deposit() public payable {        
        if (msg.value < 100) {            
            revert("Deposit must be at least 100.");        
        }        // ...    
    }
}

In this example, the deposit function will terminate and revert if the value of the msg.value is less than 100.

  • Example 2 Below is an example of a contract that uses revert to terminate an execution if a requirement is not met.

contract RevertExample {    
    uint256 private ownerBalance; 
    function withdraw() public {        
        if (msg.value > ownerBalance) {            
            revert("Insufficient funds.");        
        }        // ...    
    }
}

In this example, the withdraw function will terminate and revert if the value of the msg.value is greater than the ownerBalance variable

That's it for the lesson 18! In the next lesson, Modifier

Previous17: AssertNext19: Modifier

Last updated 1 year ago