Je travaille avec du code C appelé à partir de Python en utilisant des ctypes. Quelque part dans les entrailles de la bibliothèque C, une exception est en cours et/ou abort() est appelée. Est-ce que je peux attraper ceci dans mon code d'appelant Python? (La plate-forme est Linux)Comment attraper une exception levée dans ctypes?
2
A
Répondre
3
Vous pouvez configurer un gestionnaire de signal sur SIGABRT pour gérer le signal provoqué par abort(). Cependant, les assertions échouées peuvent aller de pair avec de la mémoire corrompue et d'autres mauvaises choses - il y a généralement une raison pour laquelle une assertion a échoué. Donc généralement terminer les applications est la meilleure chose que vous pouvez faire (sauf afficher/enregistrer une erreur dans votre gestionnaire avant de terminer).
Questions connexes
- 1. Comment attraper une exception levée dans la classe appelante
- 2. Comment la dernière levée Exception contient une exception précédemment levée?
- 3. $ erreur .ajax ne peut pas attraper exception levée de php
- 4. Attraper une exception générale - powershell
- 5. Comment attraper une exception WebSphere LTPA
- 6. Comment attraper une exception arbitraire dans Haskell?
- 7. Comment attraper une exception FtpWebResponse en C#
- 8. Comment attraper une exception Lua en C#
- 9. Exception NoSuchMethod levée dans GWT
- 10. Attraper une exception d'exécution en PHP
- 11. Attraper une exception Python en C++
- 12. Comment faire pour attraper une exception FacesFileNotFoundException?
- 13. Comment lancer et attraper une exception IllegalArgumentException?
- 14. Bind Exception non levée
- 15. Exception n'est pas levée
- 16. Comment tester si une exception est levée dans AngularJS
- 17. iOS + Comment attraper une exception non gérée
- 18. Exception de levée UITableViewCell
- 19. Attraper une exception jira-python
- 20. Attraper une exception ControllerNotFoundException dans CastleProject Monorail
- 21. Attraper FreePascal Exception dans GDB
- 22. Comment 'attraper' c printf en python avec ctypes?
- 23. Comment attraper cette exception C++
- 24. Comment attraper Timed Out Exception
- 25. Quand une exception Java est-elle levée
- 26. Pourquoi j'ai eu une erreur disant qu'aucune exception n'est levée?
- 27. exception catch qui est levée dans thread différent
- 28. Comment attraper/corriger une exception dans Spring ContextLoaderListener?
- 29. Comment attraper une exception dans la boucle/réaction d'un acteur?
- 30. Comment attraper une exception lancée dans un autre script Powershell?
L'utilisation du module de signal Python me permettra-t-elle d'intercepter un SIGABRT signalé à partir de la bibliothèque C appelée via ctypes? – PaulMcG
J'ai essayé cela maintenant, et appeler abort() dans mon code C ne signale pas SIGABRT à mon gestionnaire en Python. Donc, je vais devoir configurer mon gestionnaire de signal dans le code C aussi. Merci pour les conseils! – PaulMcG
@Paul McGuire, je suis également confronté au même problème que vous avez rencontré dans cet aspect. Alors pourriez-vous s'il vous plaît me guider comment pourrais-je résoudre ceci. Des extraits de code ou des exemples sont très appréciés. Merci d'avance. –