diff --git a/drone/modules/tasking.py b/drone/modules/tasking.py index 7a50c97..ed1e910 100644 --- a/drone/modules/tasking.py +++ b/drone/modules/tasking.py @@ -186,12 +186,15 @@ class TaskManager(object): task.func(*task.args, interrupter=self._task_interrupt_event, **task.kwargs) except Exception as e: - logger.error("Error '{}' occurred in task {}".format(e, task)) + try: + logger.error("Error '{}' occurred in task {}".format(e, task)) #print("Error '{}' occurred in task {}".format(e, task)) - if str(e) == 'STOP': - self.reset() - logger.error("Return after STOP exception, can't arm!") - return + if str(e) == 'STOP': + self.reset() + logger.error("Return after STOP exception, can't arm!") + return + except (KeyError, TypeError): + logger.error(e) else: logger.error("Task interrupted before execution") #print("Task interrupted before execution") diff --git a/lib/config.py b/lib/config.py index e820f0d..0596e91 100644 --- a/lib/config.py +++ b/lib/config.py @@ -157,7 +157,11 @@ class ConfigManager: keys = self.__dict__['_name_dict'][item] return self.get_chain(*keys) except (ValueError, KeyError): - return self.__dict__[item] + try: + return self.__dict__[item] + except KeyError: + print("config: KeyError with item {}".format(item)) + return None def __setattr__(self, key, value): try: