That's because we don't have anything to put in a finally block. Here _compositeLifeCycleState will be left at RECEIVING_STATE if shouldComponentUpdate throws which is bad.