详解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
  • asp之家 网络编程 m.aspxhome.com