Когда вы пишите модуль который будут использовать другие, то нужно предусмотреть фильтрацию данных или действий. Если что-то идет не по сценарию, то вы можете вернуть исключение (ошибку) мол, что-то пошло не так. В свою очередь, пользователь вашего кода, не получит просто print с сообщением об ошибки, он сможет поймать ваше исключение в свою конструкцию try except и продолжить логику программы далее.
Иными словами, не только интерпретатор питона может швырять ошибками, но и вы тоже.