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

    @smiterson99
    Ученик
    Добрый день! Решил данную задачу следующим образом:
    ENLIGHTENMENT_CARMA_LEVEL = 777
    
    def one_day():
        dice = random.randint(1, 13)
        karma = random.randint(1, 7)
        if dice == 1:
            try:
                raise BaseException("IamGodError")
            except BaseException as exc:
                print(f'Исключение класса - {type(exc)}  | параметры {exc.args}')
        if dice == 2:
            try:
                raise BaseException("DrunkError")
            except BaseException as exc:
                print(f'Исключение класса - {type(exc)}  | параметры {exc.args}')
        if dice == 3:
            try:
                raise BaseException("CarCrashError")
            except BaseException as exc:
                print(f'Исключение класса - {type(exc)}  | параметры {exc.args}')
    
        if dice == 4:
            try:
                raise BaseException("GluttonyError")
            except BaseException as exc:
                print(f'Исключение класса - {type(exc)}  | параметры {exc.args}')
    
        if dice == 5:
            try:
                raise BaseException("DepressionError")
            except BaseException as exc:
                print(f'Исключение класса - {type(exc)}  | параметры {exc.args}')
    
        if dice == 6:
            try:
                raise BaseException("SuicideError")
            except BaseException as exc:
                print(f'Исключение класса - {type(exc)}  | параметры {exc.args}')
        return karma
    
    
    total_karma = 0
    
    while True:
        print(total_karma)
        if total_karma < ENLIGHTENMENT_CARMA_LEVEL:
            total_karma += one_day()
        else:
            break
    Ответ написан
    Комментировать