TelenkovDmitry 6 місяців тому
батько
коміт
6eb50948c2
1 змінених файлів з 105 додано та 0 видалено
  1. 105 0
      courses/python_oop/exception/exception_3.py

+ 105 - 0
courses/python_oop/exception/exception_3.py

@@ -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()