Скажите пожалуйста, в моём коде обязательно ли использовать свои классы исключения? Вообще, это хорошая практика - создавать классы исключений и отлавливать конкретно их, а не просто безликие Exception. Но у меня сомнения по-поводу того, что в нижеприведённом коде особенной пользы от них не будет, а вот сложность и читаемость кода пострадают значительно
class Main:
def __init__(self, config, credentials, Parser, DB_connection, Sql_requester):
self.config = config
self.parser = Parser(self.config)
self.db_connection = DB_connection(credentials)
self.sql_requester = Sql_requester
self.content = []
try:
self.get_content()
self.save_content()
except Exception as e:
# write to logger
print('stop program::', e)
def get_content(self):
self.content = self.parser.get_content()
def save_content(self):
with self.db_connection as db_connection:
# some code
if __name__ == '__main__':
Main(config, credentials, Parser, DB_connection, Sql_requester)
class Parser:
def get_content(self):
try:
root_html = self.get_html(self.config.url)
links = self.get_links(root_html)
content = self.get_content_inner(links)
return content
except Exception as e:
# write to logger
raise Exception('geting content for parse is failed ')
def get_html(self, url):
try:
# some code
except Exception as e:
# write to logger
raise Exception('getting html of ' + url + ' is failed',)
def get_links(self, html):
try:
# some code
except:
# write to logger
raise Exception('getting links to inner pages is failed')
def get_content_inner(self, links):
try:
# some code
except:
# write to logger
raise Exception('parse of inner page is failed')
try:
# some code
except:
# write to logger
raise Exception('formating data of inner page is failed')
В приведённом коде я постарался выбросить все отвлекающие подробности. таким образом получился псевдокод. Но если кому интересно, то полный код
здесь