yieldAndThrow takes a Throwable, there's no reason for call to return an Object