В идеале не используйте коды ответов.Верните что-нибудь пригодное для использования в случае успеха (или аннулируйте) и сгенерируйте исключение при ошибке.
Люди имеют дело с исключениями.Мы часто забываем смотреть на возвращаемые коды, особенно когда это происходит в 99% случаев, и нам нет дела до ответа.Таким образом, мы не фиксируем.Тогда мы не будем проверять наличие ошибок.Затем мы тратим 2 дня на поиск ошибки, которую не можем найти, потому что не было сгенерировано исключение, и мы не знаем, где вышло из строя приложение на 600 000 строк, которое использовало ваш веб-сервис ... мы даже не знаем, что это был вызов вашеговеб-сервис, который не удалось.Просто некоторые данные неверны по неизвестной причине.
Есть тема на SO по этому поводу: Какие и почему вы предпочитаете исключения или коды возврата