Il y a des questions similaires, mais aucune ne fournit la réponse dont j'ai besoin.Lever des exceptions non gérées dans un thread dans le thread principal?
Si je crée des threads via threading.Thread
, qui lancent ensuite des exceptions qui ne sont pas gérées, ces threads sont terminés. Je souhaite conserver l'impression par défaut des détails de l'exception avec la trace de la pile, mais aussi réduire le processus entier.
J'ai considéré qu'il était possible d'intercepter toutes les exceptions dans les threads et de les sur-relancer sur l'objet principal, ou peut-être manuellement de gérer les exceptions par défaut, puis de déclencher un SystemExit
fil.
Quelle est la meilleure façon de procéder?
ne voulez-vous pas lancer thrdobj.exc_info dans le thread principal, et pourquoi abandonner le type d'exception lorsque vous le relancez? –
je vois maintenant, a dû lire sur 3arg déclaration raise. mais la question à propos de soi persiste, merci pour une bonne réponse, je vais l'essayer –
Je ne suis pas sûr de savoir quelle est votre question sur soi. Ce code provient d'un objet utilisé pour différer le travail sur un thread de travail, de sorte que le même objet exécute du code dans les threads de travail et principaux. –