詳解python ThreadPoolExecutor異常捕獲
python ThreadPoolExecutor線程池的工作線程中出現(xiàn)異常時(shí),主線程不會(huì)捕獲異常。
解決方法1:
直接在需要執(zhí)行的任務(wù)方法中添加try:
executor = ThreadPoolExecutor() executor.submit(test_work, 0) def test_work(p): ?? ?try: ?? ??? ?1/p ?? ?except Exception as e: ? ? ? ? logger.exception(e)
解決方法2:
添加完成運(yùn)行時(shí)的callback:
executor = ThreadPoolExecutor() task = executor.submit(test_work, 0) task.add_done_callback(handle_exception)
handle_exception中又可以通過(guò)兩種方式捕獲異常:
2.1 通過(guò)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 通過(guò)concurrent.futures.Future.result(Timeout = None)
def handle_exception(worker): Method 2: try try: worker.result() except Exception as e: logger.exception(e)
到此這篇關(guān)于詳解python ThreadPoolExecutor異常捕獲的文章就介紹到這了,更多相關(guān)python ThreadPoolExecutor異常捕獲內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在pycharm中實(shí)現(xiàn)刪除bookmark
今天小編就為大家分享一篇在pycharm中實(shí)現(xiàn)刪除bookmark,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02python自動(dòng)化測(cè)試三部曲之unittest框架的實(shí)現(xiàn)
這篇文章主要介紹了python自動(dòng)化測(cè)試三部曲之unittest框架的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10Python使用設(shè)計(jì)模式中的責(zé)任鏈模式與迭代器模式的示例
這篇文章主要介紹了Python使用設(shè)計(jì)模式中的責(zé)任鏈模式與迭代器模式的示例,責(zé)任鏈模式與迭代器模式都可以被看作為行為型的設(shè)計(jì)模式,需要的朋友可以參考下2016-03-03turtle的基礎(chǔ)使用之python?turtle遞歸繪圖
這篇文章主要介紹了turtle的基礎(chǔ)使用之python?turtle遞歸繪圖,turtle是一種比較簡(jiǎn)單的第三方庫(kù),下面借助遞歸繪圖詳細(xì)描述該內(nèi)容,具有一的的知識(shí)性參考價(jià)值,需要的朋友可以參考一下2022-02-02Python編程之gui程序?qū)崿F(xiàn)簡(jiǎn)單文件瀏覽器代碼
這篇文章主要介紹了Python編程之gui程序?qū)崿F(xiàn)簡(jiǎn)單文件瀏覽器代碼,具有一定借鑒價(jià)值,需要的朋友可以了解下。2017-12-12Python+OpenCV 圖像邊緣檢測(cè)四種實(shí)現(xiàn)方法
本文主要介紹了通過(guò)OpenCV中Sobel算子、Schaar算子、Laplacian算子以及Canny分別實(shí)現(xiàn)圖像邊緣檢測(cè)并總結(jié)了四者的優(yōu)缺點(diǎn),感興趣的同學(xué)可以參考一下2021-11-11