Разница между базовым классом BaseException и классом Exception в Python заключается в их назначении и характере исключений, которые они представляют.
BaseException — базовый класс для всех встроенных исключений в Python. 34 Обычно это исключение не возникает самостоятельно, а служит основой для других классов исключений. 3 К некоторым из них относятся GeneratorExit (вызывается методом close объекта generator), SystemExit (вызывается функцией sys.exit() во время выхода из приложения), KeyboardInterrupt (возникает при завершении программы пользователем, чаще всего при нажатии клавиш Ctrl+C). 15
Exception — наиболее часто наследуемый тип исключений. 3 Все классы исключений, которые считаются ошибками, являются подклассами этого класса. 3 Exception — группа не системных исключений, а «пользовательских». 1 К нему относятся, например, ArithmeticError (ошибки, связанные с арифметическими операциями), BufferError (возникает при невозможности выполнить операцию с буффером), LookupError (возникает при обращении в коллекциях по некорректному ключу или индексу). 2
Таким образом, BaseException представляет системные исключения, а Exception — пользовательские.