Python循环任务,错误打包输出
有时候,多个任务循环在跑,但不想中间任何一个错误,停止主线程,但又想在主线程运行结束后,采集运行过程中所有的错误信息。
这种刁钻的想法,我自问自答,记录一下操作方法。
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的方法获得错误信息字符串的列表,拼接后,就是完成的错误列表内容。
好用方便。
Python循环任务,错误打包输出的更多相关文章
- python循环删除列表元素常见错误与正确方法
python循环删除列表元素 觉得有用的话,欢迎一起讨论相互学习~Follow Me 常见错误 常见错误一:使用固定长度循环删除列表元素 # 使用固定长度循环pop方法删除列表元素 num_list_ ...
- Python循环语句
1.Python循环类型 1.while循环:在某条件下,循环执行某段程序 a. while语句有两个重要命令:continue,break来跳出循环. continue用来跳出该次循环 break用 ...
- Python:常见错误集锦(持续更新ing)
初学Python,很容易与各种错误不断的遭遇.通过集锦,可以快速的找到错误的原因和解决方法. 1.IndentationError:expected an indented block 说明此处需要缩 ...
- Python常见的错误汇总
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 错误: [错误分析]第二个参数必须为类,否则会报TypeError,所以正确的应 ...
- python 循环语句 函数 模块
python循环语句 while循环语法结构 当需要语句不断的重复执行时,可以使用while循环 while expression: while_suite 语句ehile_suite会被连续不断的循 ...
- 孤荷凌寒自学python第十五天python循环控制语句
孤荷凌寒自学python第十五天python循环控制语句 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) python中只有两种循环控制语句 一.while循环 while 条件判断式 1: ...
- Python循环语句,对象
Python循环语句,对象 案例1:斐波那契数列 案例2:模拟cp操作 案例3:生成8位随机密码 1 案例1:斐波那契数列 1.1 问题 编写fib.py脚本,主要要求如下: 输出具有10个数字的斐波 ...
- Python循环语句代码详解:while、for、break
1 while循环 循环语句是程序设计中常用的语句之一.任何编程语言都有while循环,Python也不例外.while循环的格式如下所示. while(表达式): - else: ...
- Python使用中文注释和输出中文(原创)
刚开始学习python,需要在Python中注释中文和输出中文,现在开始尝试: 仅为初步学习参考,高手请绕行. -------------------------------------------- ...
- 解决ASP.NET Web API Json对象循环参考错误
前言 一般我们在开法 ASP.NET Web API 时,如果是使用 Entity Framework 技术来操作数据库的话,当两个 Entity 之间包含导览属性(Navigation Proper ...
随机推荐
- @dynamicMemberLookup(动态成员查找)
动态成员查找是 Swift 中的一项功能特性,可提高与 Python 或 Javascript 等动态语言的互操作性.它允许动态成员查找调用看起来像访问类型属性的常规调用: let people = ...
- 性能测试-ps与vmstat
1.ps命令-获取当前系统的进程状态 ps >ps(process status) 获取帮助: man ps 获取当前系统的进程状态 ps-ef-eF-elv 使用标准语法查看系统上的每个进程 ...
- java-Stream流的常见方法
一 常见创建流的三种方式 //list集合创建流方式 new ArrayList<>().stream(); new HashSet<>().stream(); //map集 ...
- pinia学习
1.安装 yarn add piniaOR 使用npmnpm install piniapinia是Vue的存储库,允许跨组件/页面共享状态.pinia和vuex的作用一样,充当一个存储数据的作用,存 ...
- 读后笔记 -- Java核心技术(第11版 卷 II) Chapter3 XML
3.1 XML Introduction An XML document is made up of elements. An element can have attributes (key/val ...
- fetch 小分析
includes\database\prefetch.inc line 385 public function fetchField($index = 0) { return $this->fe ...
- eccodes 使用girb_filter工具
参考自ECMWF网站https://confluence.ecmwf.int/display/OPTR/ecCodes%3A+GRIB+and+BUFR+data+decoding+and+encod ...
- Oracle View的 With Check OPTION 參數有什麼用途?
1. 當通過View Insert數據到定義此View的SQL中的基本表的時候,insert的資料要符合SQL中here條件,否則Insert View 的操作無法成功: 2. 注意:WITH REA ...
- ICPC2020 沈阳
F-Kobolds and Catacombs 牛客网 题意:对于\(n(n<=10^6)\)个数的序列,划分区间,每个区间内部从小到大排序,要求最后整个序列单调不下降,求最多可以划分为多少个区 ...
- Oracle 低版本客户端连接19C报错ORA-28040
# 适用范围12.2+# 问题概述客户使用Oracle11.2客户端连接Oracle 19c的时候,报错: ORA-28040: No matching authentication protocol ...