# Обработка исключений 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()