Задать вопрос
  • Как правильно вызывать кастомные исключения, не прерывая функция?

    @Vakaram
    Я сделал так:
    Но код можно сокращать например рандом вставить в сразу в list.
    Может кому поможет удачи.
    from random import randint
    ENLIGHTENMENT_CARMA_LEVEL = 777
    def one_day(carma_now=0):
        ENLIGHTENMENT_CARMA_LEVEL = 777
        all_day = 0
        list_random = ['IamGodError','DrunkError','CarCrashError','GluttonyError','DepressionError','SuicideError',]
        while carma_now <= ENLIGHTENMENT_CARMA_LEVEL:
            add_karm = randint(1, 7)
            carma_now += add_karm
            print(f'Карма прибавилась на {add_karm} и стала {carma_now}')
            all_day += 1
            dice = randint(1,13)
            if dice == 1:#или любое число чтобы была вероятность 1 к 13
                try:
                    now_error = list_random[randint(0,5)] #выбираем рандомно наше исключение если выпало число 1
                    raise Exception(now_error)
                except Exception as exc:
                    peremennaya_error = f'{exc.args}\n'
                    print(f'Наше исключение {peremennaya_error}')
                    file_log = open('logirovanie.txt','a',encoding= 'utf-8')
                    file_log.write(peremennaya_error)
        else:
            print(f'Мы выбрались из дня сурка кармы стало {carma_now}')
            print(f'Дней затрачено {all_day}')
    day_surka = one_day()
    print(day_surka)
    Ответ написан
    Комментировать