Ethereum Virtual Machine (EVM) Exceptions


Exceptions which cause the EVM to halt exceptionally.

Module Contents


Indicates that the EVM has experienced an exceptional halt. This causes execution to immediately end with all gas being consumed.

exception ExceptionalHalt

Bases: ethereum.exceptions.EthereumException


Raised by the REVERT opcode.

Unlike other EVM exceptions this does not result in the consumption of all gas.

exception Revert

Bases: ethereum.exceptions.EthereumException


Occurs when a pop is executed on an empty stack.

exception StackUnderflowError

Bases: ExceptionalHalt


Occurs when a push is executed on a stack at max capacity.

exception StackOverflowError

Bases: ExceptionalHalt


Occurs when an operation costs more than the amount of gas left in the frame.

exception OutOfGasError

Bases: ExceptionalHalt


Raised when an invalid opcode is encountered.

exception InvalidOpcode

Bases: ExceptionalHalt


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


Raised when the message depth is greater than 1024

exception StackDepthLimitError

Bases: ExceptionalHalt


Raised when an attempt is made to modify the state while operating inside of a STATICCALL context.

exception WriteInStaticContext

Bases: ExceptionalHalt


Raised when an attempt was made to read data beyond the boundaries of the buffer.

exception OutOfBoundsRead

Bases: ExceptionalHalt


Raised when the new contract address has a collision.

exception AddressCollision

Bases: ExceptionalHalt