VS Code + Python -> Ошибки в Pool.Apply_asyn c игнорируются? - PullRequest
0 голосов
/ 20 февраля 2020

Посмотрите на этот код:

import multiprocessing as mp

def myFunc():
    nonExistingObject.DoSomething()

def collectFunc():
    pass

#uncomment me for desired behaviour
#myFunc()

pool = mp.Pool(2)
pool.apply_async(myFunc, args=(), callback=collectFunc)

Если вы запустите его на VS Code, код завершится, и об ошибках не сообщается, но, конечно, происходит ошибка. Не только nonExistingObject не определено, но и DoSomething() также не определено.

Если вы раскомментируете указанный код, вы получите ожидаемую ошибку @ runtime. В VSCode я уже проверял точки останова «Uncaught Exceptions»

Есть ли способ заставить ошибку быть пойманной? это вещь python или вещь VSCode?

1 Ответ

0 голосов
/ 20 февраля 2020

Я думаю, что ваш код завершает работу, прежде чем пулу удастся что-либо запустить.

Попробуйте

with mp.Pool(2) as pool:
   pool.apply_async(myFunc, args=(), callback=collectFunc)
...