Предположительно, второй блок кода в вашем вопросе является реализацией GetProvider::UpdateUser()
.
Очевидная альтернатива гарантии того, что он возвращает значение bool, состоит в том, чтобы он выдавал исключение при сбое. В зависимости от того, сколько у вас есть кода, который возвращает / не возвращает значение, это может сэкономить значительную часть работы. В частности, все, что в данный момент возвращает без значения, можно оставить в покое. Все, что возвращает «успех», может просто удалить возвращаемое значение. Вещи, которые возвращают ошибку, нуждаются в модификации, чтобы вместо этого выдать исключение.
Если вы сделаете это, трудная часть будет гарантировать, что весь другой код безопасен для исключений. В зависимости от вашего другого использования исключений (если таковые имеются), вы почти наверняка должны делать это независимо, но это может вызвать проблему, поэтому вам придется быстрее устранять проблемы в другом коде.