首页 > 编程语言 >Python循环任务,错误打包输出

Python循环任务,错误打包输出

时间:2022-12-27 14:13:02浏览次数:40  
标签:info 输出 uid err Python traceback list 打包 exc

有时候,多个任务循环在跑,但不想中间任何一个错误,停止主线程,但又想在主线程运行结束后,采集运行过程中所有的错误信息。

这种刁钻的想法,我自问自答,记录一下操作方法。

        err_list = []
        mail_str = ''
        for uid in self.uid_list:
            try:
                self.write_or_update_info_in_database(uid)
                logger_stream.info(f'uid: {uid} 写入更新成功')
            except Exception as e:
                logger_stream.info(f'uid: {uid} 写入更新失败')
                err_list.append((uid, e))

        # 采集各个请求任务的报错信息
        for uid, e in err_list:
            try:
                raise e
            except:
                exc_type, exc_value, exc_traceback = sys.exc_info()
                info_list = traceback.format_exception(exc_type, exc_value,
                                                       exc_traceback)
                err_info = f'\nuid: {uid} 请求错误, 错误信息如下:\n'
                err_info += ''.join(info_list)
                err_info += '\n' * 3
                mail_str += err_info

  

通过每次调用任务,用except接收错误e

所有任务完成后,通过raise e的方式上浮错误,通过traceback.format_exception的方法获得错误信息字符串的列表,拼接后,就是完成的错误列表内容。

好用方便。

 

标签:info,输出,uid,err,Python,traceback,list,打包,exc
From: https://www.cnblogs.com/sidianok/p/17007946.html

相关文章