Ethereum Draft Proposes CALLSTATUS for Calls and Contract Creation
The proposed three-bit code would identify success, rollback, exceptional termination or termination at a lower level. It aims to distinguish deliberate rollbacks from failures such as gas exhaustion.

An Ethereum community draft proposes an instruction called CALLSTATUS that would give contracts a three-bit result for the latest call or contract-creation operation in an execution frame.
The code would mark success, rollback, exceptional termination or termination at a lower level. This would let a contract distinguish an intentional rollback from an exceptional stop, such as running out of gas.
The proposal aims to prevent a sender from manipulating gas to disguise one failure outcome as another. It is also designed to accommodate possible future changes to how Ethereum meters state creation.