J'ai une application graphique complexe écrite en Python et wxPython. Je veux qu'il soit certifié pour Windows Vista, il doit donc se bloquer de manière à provoquer la boîte de dialogue Rapport d'erreurs Windows (Celui qui demande "Voulez-vous envoyer un rapport à Microsoft?") apparaît. Ceci est pertinent pour le cas de test n ° 32 du document "Certified for Windows Vista Test Cases".Empêche wxPython d'afficher une boîte de dialogue 'Exception non gérée'
Malheureusement, quand je crash mon application avec ThreadHijacker
outil wxPython montre un message comme:
Unhandled exception --------------------------- An unhandled exception occurred. Press "Abort" to terminate the program, "Retry" to exit the program normally and "Ignore" to try to continue. --------------------------- Abort Retry Ignore
Comment puis-je empêcher wxPython de montrer ce message? J'ai personnalisé sys.excepthook
, mais il semble que cette boîte de dialogue est affichée avant que mon crochet, sauf peut interférer.
EDIT:
wxWidgets docs dit que wxAppConsole :: OnExceptionInMainLoop est appelé et sous MSW, il affiche une boîte de dialogue de fantaisie qui permet à l'utilisateur de choisir entre les différentes options. Il semble cependant que wxPython ne permet pas de surcharger cette fonction ... Est-ce que quelqu'un sait comment changer le comportement par défaut de wxAppConsole :: OnExceptionInMainLoop dans wxPython?
Je préfère des solutions au niveau Python sur ceux qui vont en C/C++
EDIT2:
Dans l'ensemble, j'ai demandé à la liste de diffusion wxPython, et Robin Dunn a répondu qu'il regardera en rendant wxAppConsole :: OnExceptionInMainLoop remplaçable dans les prochaines versions de wxPython. Comme je ne pouvais pas attendre, j'ai dû compiler ma propre version de wxPython qui n'inclut pas cette fonction. Il s'est avéré que la présence de la fonction wxAppConsole :: OnExceptionInMainLoop peut être activée/désactivée par le réglage correct des drapeaux de compilation.
Si vous n'obtenez pas de réponse ici, votre meilleur pari est probablement d'essayer la liste de diffusion de wxpython, puisque de nombreux experts (y compris Robin Dunn) s'y tiennent. –