# Обработка исключений



def exc_1():
    try:
        int('hello')
        1/0
    except ValueError:
        print('error ValueError')

#
def exc_2():
    try:
        1/0
    except Exception as e:
        print(e)
    finally:    # выполняется всегда
        print('finally!!!')

def exc_3():
    try:
        1/1
    # except (KeyError, IndexError):
    except Exception as e:
        print('Exception!!!', e)
    else:   # отрабатывает когда в try нет исключения
        print('try else!!! Исключения не состоялось!')
    finally:
        print('Еще и finally можно запилить!!!')

def exc_4():
    try:
        a = int(input())
        b = int(input())
        print(f"Результат деления a на b: {a/b}")
    except (ValueError, ZeroDivisionError):
        print('Введите корректные значения')

def exc_5():
    try:
        a = int(input())
        b = int(input())
        print(f"Результат деления a на b: {a/b}")
    except ValueError:
        print('Введите целое число')
    except ZeroDivisionError:
        print('Делитель не должен быть равен нулю')

def exc_6():
    try:
        file = open('pentagon_secrets.txt', 'r')
        print(file.read())
    except FileNotFoundError:
        print('Эх, не судьба тайны пентагона узнать')

def func(phrase):
    func(phrase)

def exc_7():
    try:
        func('Это рекурсия, детка!')
    except RecursionError:
        print('Кто-то должен остановить это безумие')


class CustomButton:
    
    def __init__(self, text, **kwargs):
        self.text = text
        for key, value in kwargs.items():
            setattr(self, key, value)

    def config(self, **kwargs):
        for key, value in kwargs.items():
            setattr(self, key, value)
    
    def click(self):
        try:
            self.command()
        except AttributeError:
            print('Кнопка не настроена')
        except TypeError:
            print('Кнопка сломалась')

def main():
    # exc_1()
    # exc_2()
    # exc_4()
    # exc_5()
    # exc_6()
    # exc_7()    
    
    '''
    door = CustomButton('text', size='180x70', color='red', material='oak')
    print(door.size, door.color, door.material, sep=', ')
    door.config(new_attr='value')
    print(door.size, door.color, door.material, door.new_attr, sep=', ')
    door.config(new_attr='new_value')
    print(door.size, door.color, door.material, door.new_attr, sep=', ')
    '''
    

if __name__ == '__main__':
    main()