Advertisement
Guest User

Untitled

a guest
Jul 12th, 2016
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.33 KB | None | 0 0
  1. import logging
  2.  
  3.  
  4. class ClassHuyassException(Exception):
  5.     pass
  6.  
  7.  
  8. class ClassHuyassSpecialException(ClassHuyassException):
  9.     # просто как пример, что исключительные ситуации у тебя по логике могут отличаться
  10.     # и обработка этих ошибок тоже может отличаться
  11.     pass
  12.  
  13.  
  14. class ClassHuyass:
  15.     def __init__(self, conn):
  16.         self.connection = conn
  17.         self.pole1 = ''
  18.         self.pole2 = ''
  19.         self.pole3 = ''
  20.  
  21.     def method_huyethod(self):
  22.         # Сделать что-нибудь с полями класса
  23.         # Этот метод может бросить исключение
  24.         # self.connection.blablabla()
  25.         raise ClassHuyassException("Ошибка в таком-то методе при попытке выполнить такую-то операцию.")
  26.  
  27.     def method_huyethod2(self):
  28.         # Сделать что-нибудь с полями класса
  29.         # Этот метод тоже может бросить исключение
  30.         # self.connection.blablabla()
  31.         raise ClassHuyassException("Ошибка в таком-то методе при попытке выполнить такую-то операцию.")
  32.  
  33.     def method_huyethod3(self):
  34.         # И этот метод тоже может бросить исключение
  35.         # self.connection.blablabla()
  36.         raise ClassHuyassSpecialException("Ошибка в таком-то методе при попытке выполнить такую-то операцию.")
  37.  
  38.  
  39. def init(conn):
  40.     # этот метод вернёт массив объектов класса-хуясса
  41.     # в процессе работы он тоже может бросить исключение
  42.     result = []
  43.     result.append(ClassHuyass(conn=conn))
  44.     return result
  45.  
  46.  
  47. def open_connection():
  48.     connection = # ('127.0.0.1', 'Vasya', '123456') бла бла бла хуё-моё и всё такое нувыпонели.
  49.     connection.open()
  50.     return connection
  51.  
  52.  
  53. def do_some_huyack_huyack(class_huyass_list):
  54.     for each in class_huyass_list:
  55.         each.method_huyethod()
  56.         each.method_huyethod2()
  57.         each.method_huyethod3()
  58.  
  59.  
  60. def main():
  61.     try:
  62.         conn = open_connection()
  63.     except Exception as e:
  64.         logging.exception("Хуясе!")
  65.  
  66.     try:
  67.         class_huyass_list = init(conn=conn)
  68.         do_some_huyack_huyack(class_huyass_list)
  69.     except ClassHuyassSpecialException as e:
  70.         pass
  71.     except ClassHuyassException as e:
  72.         # ну или logging.info, смотря что тебе ближе по логике
  73.         logging.debug("Произошло некоторое дерьмо, но оно предусмотрено нашей логикой и ожидаемо", exc_info=True)
  74.     except Exception as e:
  75.         logging.exception("Произошло некоторое дерьмо, явно ошибка и мы такого дерьма не ожидали")
  76.  
  77.     try:
  78.         conn.close()
  79.     except Exception as e:
  80.         print("Ошибка при закрытии соединения. Наверное, оно и не было открыто вовсе.")
  81.  
  82. print("Ну вот и поработали-с. Пака.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement