From b6e0985699609ab3c004b50b92fbdb8dc882f8e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com> Date: Mon, 30 Nov 2020 15:38:38 +0000 Subject: [PATCH] Treat error in collect_information --- CHANGELOG.md | 2 +- src/caosadvancedtools/crawler.py | 28 +++++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0cef3c6b..3618c3fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,7 +41,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Removed ### ### Fixed ### - +- An exception in collect_information does no longer lead to a break down. * Fixed an issue where `caosadvancedtools.cache.UpdateCache` would cause an `sqlite3.IntegrityError` if more than one change was cached for the same entity. diff --git a/src/caosadvancedtools/crawler.py b/src/caosadvancedtools/crawler.py index a5ed4caa..631f1228 100644 --- a/src/caosadvancedtools/crawler.py +++ b/src/caosadvancedtools/crawler.py @@ -215,10 +215,36 @@ class Crawler(object): errors_occured = True tbs.append(e) + logger.debug(separated("Number of Cfoods: "+str(len(cfoods)))) logger.debug(separated("CFoods are collecting information...")) + remove_cfoods = [] + for cfood in cfoods: - cfood.collect_information() + try: + cfood.collect_information() + except DataInconsistencyError as e: + logger.debug(traceback.format_exc()) + logger.debug(e) + remove_cfoods.append(cfood) + except Exception as e: + try: + DataModelProblems.evaluate_exception(e) + except BaseException: + pass + logger.debug("Failed during execution of {}!".format( + Cfood.__name__)) + logger.debug(traceback.format_exc()) + logger.debug(e) + remove_cfoods.append(cfood) + + if self.abort_on_exception: + raise e + + for rm in remove_cfoods: + cfoods.remove(rm) + logger.debug("Removed {} due to an Error in " + "collect_information".format(str(rm))) logger.debug( separated("Trying to attach further items to created CFoods")) -- GitLab