Ну, мы (команда шаблонов и практик) просто оптимизированы для показа других вещей, которые мы сочли полезными. Приведенный выше код на самом деле не «библиотека общего назначения», а скорее специфический метод для примера, который ее использует.
В тот момент мы думали, что добавление этой дополнительной обработки ошибок не добавит много, и мы решили не усложнять это, но ... мы могли ошибаться.
В любом случае, если вы перейдете по ссылке в // TODO:, вы найдете еще один раздел предыдущего руководства, которое мы написали, в котором немного больше говорится об обработке ошибок в «сложных» транзакциях хранения (не в «ACID»). хотя транзакции "ala DTC" не поддерживаются в Windows Azure Storage).
Ссылка это: http://msdn.microsoft.com/en-us/library/ff803365.aspx
Здесь более подробно перечислены ограничения:
- В партии должен присутствовать только один экземпляр объекта
- Макс. 100 объектов или 4 МБ полезной нагрузки
- Тот же PartitionKey (который обрабатывается в коде: обратите внимание, что «пакет» указывается только при наличии единственного ключа раздела)
- и т.д.
Добавление некоторой дополнительной обработки ошибок не должно слишком усложнять ситуацию, а зависит от типа приложения, которое вы создаете поверх этого, и вашего предпочтения обрабатывать это выше или ниже в вашем стеке приложений. В нашем примере приложение никогда не будет ожидать> 100 сущностей в любом случае, поэтому оно просто раздувает исключение в случае возникновения такой ситуации (потому что оно должно быть действительно исключительным). То же самое с общим размером. Варианты использования, реализованные в приложении, делают невозможным размещение одной и той же сущности в одной коллекции, поэтому, опять же, этого никогда не должно произойти (а если это произойдет, то просто выдаст)
Все ограничения "транзакций группы сущностей" описаны здесь: http://msdn.microsoft.com/en-us/library/dd894038.aspx
Дайте нам знать, как это происходит! Мне также интересно узнать, были ли другие части руководства полезными для вас.