Перехват KeyboardInterrupt при обработке временных событий не рекомендуется, потому что это может привести к сбою в работе приложения и потере информации о настоящей причине ошибки. 1
Оптимальный вариант — перехватывать только те исключения, которые известны и готовы к обработке. 1 В случае с KeyboardInterrupt, возникающим при завершении программы пользователем (чаще всего при нажатии клавиш Ctrl+C), лучше восстановить обработчик сигналов Ctrl+C по умолчанию, который просто завершает процесс. 2 Для этого можно использовать модуль signal. 2
Также для обработки ошибок рекомендуется заранее продумывать возможные сбои и исключения. 1 Например, при временном сбое соединения с базой данных можно отловить ошибку и попробовать соединиться в базу данных заново. 3