2009-06-10 4 views
-1

"L'application a échoué à s'initialiser correctement ... Cliquez sur OK pour terminer l'application." est le message de la fenêtre contextuelle d'erreur. Quel est le moyen d'attraper ces erreurs dans le code Python?Lors d'un appel de sous-processus, attraper les erreurs Windows critiques en Python au lieu de laisser le système d'exploitation gérer en affichant des fenêtres d'erreur

+4

-1: pas une question. S'il vous plaît utiliser le format question/réponse sur ce site (même si vous écrivez les deux) – nosklo

+1

Oui, vous posez la question comme Comment attraper .... puis cliquez sur le bouton de réponse et de mettre votre code/solution de contournement dans la réponse. Ensuite, les gens peuvent évaluer votre solution indépendamment de votre question. – SpliFF

+0

La réponse est maintenant dans la section des réponses; aussi cette question est maintenant un 'wiki communautaire'. –

Répondre

3

Cela vous semble familier? Cela bloquera votre subprocess.Popen pour toujours .. jusqu'à ce que vous cliquiez sur le bouton 'OK'. Ajoutez le code suivant à votre initialisation de module pour contourner ce problème:

import win32api, win32con 
win32api.SetErrorMode(win32con.SEM_FAILCRITICALERRORS | 
         win32con.SEM_NOOPENFILEERRORBOX) 
Questions connexes