def __exit__(self, exc_type, exc_val, exc_tb):
self.before_exit()
signal_responses = results_collected.send_robust(
sender=self, results=self.get_results_to_send(),
context=copy.deepcopy(context.current.data))
if exc_type is None:
for (receiver, response) in signal_responses:
if isinstance(response, BaseException):
orig_tb = ''.join(
traceback.format_tb(response.__traceback__))
error_msg = '{}{}: {}'.format(
orig_tb,
type(response).__name__,
str(response)
)
if hasattr(response, 'clone_with_more_info'):
new_exc = response.clone_with_more_info(
orig_tb=orig_tb)
else:
new_exc = type(response)(error_msg)
raise new_exc
评论列表
文章目录