Перед дозаписью файла, скрипт должен выбросить случайное исключение и завершиться

import random

errors = [
    'Не повезло',
    'Повезло но не сильно',
    'Красавчик, продолжай дальше'
]

rnd = 0
fl = 0
with open('out_file.txt', 'w') as file:
    while rnd <= 777:
        nums = int(input('Введите число: '))
        rnd += nums
        if 13 == random.randint(1, 13):
            raise random.choice(errors)
        print(nums, file=file)

Вот набросал, и работает как-то рандомно, то бросает исключения то нет и потом сам ругается на:

raise random.choice(errors)
TypeError: exceptions must derive from BaseException

Запрашиваем у пользователя число до тех пор, пока сумма этих чисел не станет больше либо равна 777.
Каждое введённое число при этом дозаписывается в файл out_file.txt
Перед дозаписью с вероятностью 1 к 13 выбрасывает пользователю случайное исключение и завершается. Пример:

Введите число: 10
Введите число: 500
Введите число: 200
Введите число: 67
Вы успешно выполнили условие для выхода из порочного цикла!

Содержимое файла out_file.txt:
10
500
200
67

Вариант 2:

Введите число: 10
Введите число: 500
Вас постигла неудача!

Содержимое файла out_file.txt:
10

Ответы (1 шт):

Автор решения: Sergey Derevianko

Оберните текст ошибки в тип Exception:

import random

errors = [
    'Не повезло',
    'Повезло но не сильно',
    'Красавчик, продолжай дальше'
]

rnd = 0
fl = 0
with open('out_file.txt', 'w') as file:
    while rnd <= 777:
        nums = int(input('Введите число: '))
        rnd += nums
        if 13 == random.randint(1, 13):
            raise Exception(random.choice(errors))
        print(nums, file=file)
→ Ссылка