Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import logging
- class ClassHuyassException(Exception):
- pass
- class ClassHuyassSpecialException(ClassHuyassException):
- # просто как пример, что исключительные ситуации у тебя по логике могут отличаться
- # и обработка этих ошибок тоже может отличаться
- pass
- class ClassHuyass:
- def __init__(self, conn):
- self.connection = conn
- self.pole1 = ''
- self.pole2 = ''
- self.pole3 = ''
- def method_huyethod(self):
- # Сделать что-нибудь с полями класса
- # Этот метод может бросить исключение
- # self.connection.blablabla()
- raise ClassHuyassException("Ошибка в таком-то методе при попытке выполнить такую-то операцию.")
- def method_huyethod2(self):
- # Сделать что-нибудь с полями класса
- # Этот метод тоже может бросить исключение
- # self.connection.blablabla()
- raise ClassHuyassException("Ошибка в таком-то методе при попытке выполнить такую-то операцию.")
- def method_huyethod3(self):
- # И этот метод тоже может бросить исключение
- # self.connection.blablabla()
- raise ClassHuyassSpecialException("Ошибка в таком-то методе при попытке выполнить такую-то операцию.")
- def init(conn):
- # этот метод вернёт массив объектов класса-хуясса
- # в процессе работы он тоже может бросить исключение
- result = []
- result.append(ClassHuyass(conn=conn))
- return result
- def open_connection():
- connection = # ('127.0.0.1', 'Vasya', '123456') бла бла бла хуё-моё и всё такое нувыпонели.
- connection.open()
- return connection
- def do_some_huyack_huyack(class_huyass_list):
- for each in class_huyass_list:
- each.method_huyethod()
- each.method_huyethod2()
- each.method_huyethod3()
- def main():
- try:
- conn = open_connection()
- except Exception as e:
- logging.exception("Хуясе!")
- try:
- class_huyass_list = init(conn=conn)
- do_some_huyack_huyack(class_huyass_list)
- except ClassHuyassSpecialException as e:
- pass
- except ClassHuyassException as e:
- # ну или logging.info, смотря что тебе ближе по логике
- logging.debug("Произошло некоторое дерьмо, но оно предусмотрено нашей логикой и ожидаемо", exc_info=True)
- except Exception as e:
- logging.exception("Произошло некоторое дерьмо, явно ошибка и мы такого дерьма не ожидали")
- try:
- conn.close()
- except Exception as e:
- print("Ошибка при закрытии соединения. Наверное, оно и не было открыто вовсе.")
- print("Ну вот и поработали-с. Пака.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement