详解python ThreadPoolExecutor异常捕获
作者:ldahual 时间:2023-08-09 12:54:30
python ThreadPoolExecutor线程池的工作线程中出现异常时,主线程不会捕获异常。
解决方法1:
直接在需要执行的任务方法中添加try:
executor = ThreadPoolExecutor()
executor.submit(test_work, 0)
def test_work(p):
try:
1/p
except Exception as e:
logger.exception(e)
解决方法2:
添加完成运行时的callback:
executor = ThreadPoolExecutor()
task = executor.submit(test_work, 0)
task.add_done_callback(handle_exception)
handle_exception中又可以通过两种方式捕获异常:
2.1 通过concurrent.futures.Future.exception(timeout=None)
def handle_exception(worker):
# Method 1: concurrent.futures.Future.exception(timeout=None)
worker_exception = worker.exception()
if worker_exception:
logger.exception(worker_exception)
2.2 通过concurrent.futures.Future.result(Timeout = None)
def handle_exception(worker):
Method 2: try
try:
worker.result()
except Exception as e:
logger.exception(e)
来源:https://blog.csdn.net/ldahual/article/details/128134915
标签:python,ThreadPoolExecutor,异常捕获
0
投稿
猜你喜欢
python异常处理try except过程解析
2021-06-23 14:53:29
Python类中的魔法方法之 __slots__原理解析
2023-10-01 18:49:51
python请求域名requests.(url = 地址)报错
2021-12-18 06:28:36
PyCharm中鼠标悬停在函数上时显示函数和帮助的解决方法
2023-08-10 19:20:02
在Python 3中实现类型检查器的简单方法
2022-08-13 13:30:30
Python3 安装PyQt5及exe打包图文教程
2021-09-24 12:43:56
Python实现的基数排序算法原理与用法实例分析
2023-11-11 10:15:12
Pycharm学习教程(4) Python解释器的相关配置
2023-12-01 10:11:32
Python之文字转图片方法
2022-02-12 07:11:10
MySQL中varchar和char类型的区别
2024-01-22 22:36:05
网页设计之文字的辨识度与可读性
2007-10-26 16:19:00
Python实现学生管理系统(面向对象版)
2021-11-05 01:20:54
对python添加模块路径的三种方法总结
2023-11-26 04:01:35
献给写作者的 Markdown 新手指南
2023-04-14 04:50:18
在Linux命令行终端中使用python的简单方法(推荐)
2021-10-27 23:29:21
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
2023-08-05 18:46:48
python基础之面对对象基础类和对象的概念
2021-08-16 03:26:33
MySql总弹出mySqlInstallerConsole窗口的解决方法
2024-01-18 20:01:23
ASP.NET Core中的Configuration配置一
2024-06-05 09:32:59
详解yii2使用多个数据库的案例
2024-05-13 09:53:07