в сишной проге у меня есть исключения когда что-то принципиально пошло не так - например файл не открылся, а это необходимо для продолжения нормальной работы. все обработчики исключений сосредоточены в нескольких функциях.
при этом речь идёт о выполнении всего одной команды пользователя, к примеру в gui-проге надо вывести диалог что команда не отработала и продолжить выполнять последующие команды пользователя. вот в Go такое есть - можно перехватить панику на определённом уровне и дальше работать как обычно. если также можно в расте - считай, исключения в нём есть