В твоём подходе для меня главное, что надо везде проверять, что у тебя в данных (данные или ошибка).
В моём - данные отдельно, ошибка отдельно.