Функция всегда должна вернуть корректные данные, то есть «сам документ». Если не удалось, то выкидывается исключение. Это питоностиль. Он позволяет писать код без проверки результата выполнения каждой функции.
Для текста ошибки есть текст исключения. Буль не нужен.
И да, зачем копить ошибки, если уже первая случилась и дальше можно не продолжать, раз всё пошло не так?