exception_3.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. # Обработка исключений
  2. def exc_1():
  3. try:
  4. int('hello')
  5. 1/0
  6. except ValueError:
  7. print('error ValueError')
  8. #
  9. def exc_2():
  10. try:
  11. 1/0
  12. except Exception as e:
  13. print(e)
  14. finally: # выполняется всегда
  15. print('finally!!!')
  16. def exc_3():
  17. try:
  18. 1/1
  19. # except (KeyError, IndexError):
  20. except Exception as e:
  21. print('Exception!!!', e)
  22. else: # отрабатывает когда в try нет исключения
  23. print('try else!!! Исключения не состоялось!')
  24. finally:
  25. print('Еще и finally можно запилить!!!')
  26. def exc_4():
  27. try:
  28. a = int(input())
  29. b = int(input())
  30. print(f"Результат деления a на b: {a/b}")
  31. except (ValueError, ZeroDivisionError):
  32. print('Введите корректные значения')
  33. def exc_5():
  34. try:
  35. a = int(input())
  36. b = int(input())
  37. print(f"Результат деления a на b: {a/b}")
  38. except ValueError:
  39. print('Введите целое число')
  40. except ZeroDivisionError:
  41. print('Делитель не должен быть равен нулю')
  42. def exc_6():
  43. try:
  44. file = open('pentagon_secrets.txt', 'r')
  45. print(file.read())
  46. except FileNotFoundError:
  47. print('Эх, не судьба тайны пентагона узнать')
  48. def func(phrase):
  49. func(phrase)
  50. def exc_7():
  51. try:
  52. func('Это рекурсия, детка!')
  53. except RecursionError:
  54. print('Кто-то должен остановить это безумие')
  55. class CustomButton:
  56. def __init__(self, text, **kwargs):
  57. self.text = text
  58. for key, value in kwargs.items():
  59. setattr(self, key, value)
  60. def config(self, **kwargs):
  61. for key, value in kwargs.items():
  62. setattr(self, key, value)
  63. def click(self):
  64. try:
  65. self.command()
  66. except AttributeError:
  67. print('Кнопка не настроена')
  68. except TypeError:
  69. print('Кнопка сломалась')
  70. def main():
  71. # exc_1()
  72. # exc_2()
  73. # exc_4()
  74. # exc_5()
  75. # exc_6()
  76. # exc_7()
  77. '''
  78. door = CustomButton('text', size='180x70', color='red', material='oak')
  79. print(door.size, door.color, door.material, sep=', ')
  80. door.config(new_attr='value')
  81. print(door.size, door.color, door.material, door.new_attr, sep=', ')
  82. door.config(new_attr='new_value')
  83. print(door.size, door.color, door.material, door.new_attr, sep=', ')
  84. '''
  85. if __name__ == '__main__':
  86. main()