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