Ethereum Virtual Machine (EVM) Exceptions
Table of Contents
Introduction
Exceptions which cause the EVM to halt exceptionally.
Module Contents
ExceptionalHalt
Indicates that the EVM has experienced an exceptional halt. This causes execution to immediately end with all gas being consumed.
- exception ExceptionalHalt
Revert
Raised by the REVERT opcode.
Unlike other EVM exceptions this does not result in the consumption of all gas.
- exception Revert
StackUnderflowError
Occurs when a pop is executed on an empty stack.
- exception StackUnderflowError
Bases:
ExceptionalHalt
StackOverflowError
Occurs when a push is executed on a stack at max capacity.
- exception StackOverflowError
Bases:
ExceptionalHalt
OutOfGasError
Occurs when an operation costs more than the amount of gas left in the frame.
- exception OutOfGasError
Bases:
ExceptionalHalt
InvalidOpcode
Raised when an invalid opcode is encountered.
- exception InvalidOpcode
Bases:
ExceptionalHalt
InvalidJumpDestError
Occurs when the destination of a jump operation doesn’t meet any of the following criteria:
The jump destination is less than the length of the code.
The jump destination should have the JUMPDEST opcode (0x5B).
The jump destination shouldn’t be part of the data corresponding to PUSH-N opcodes.
- exception InvalidJumpDestError
Bases:
ExceptionalHalt
StackDepthLimitError
Raised when the message depth is greater than 1024
- exception StackDepthLimitError
Bases:
ExceptionalHalt
WriteInStaticContext
Raised when an attempt is made to modify the state while operating inside of a STATICCALL context.
- exception WriteInStaticContext
Bases:
ExceptionalHalt
OutOfBoundsRead
Raised when an attempt was made to read data beyond the boundaries of the buffer.
- exception OutOfBoundsRead
Bases:
ExceptionalHalt
InvalidParameter
Raised when invalid parameters are passed.
- exception InvalidParameter
Bases:
ExceptionalHalt
InvalidContractPrefix
Raised when the new contract code starts with 0xEF.
- exception InvalidContractPrefix
Bases:
ExceptionalHalt