К сожалению, я думаю, что лучший способ сделать это зависит от деталей - по крайней мере, какой язык вы используете. Например, в Python вы можете использовать менеджер контекста , чтобы разрешить написание такого кода:
with progress_report("Task 1"):
do_task_1()
Это может, например, гарантировать, что «Задача 1 выполнена», даже если do_task_1 () вызывает исключение. Если вы хотите, вы можете обрабатывать исключения отдельно и печатать что-то другое, например «Задача 1 не выполнена» или «Задача 1 отменена».