juju0 Posté(e) 31 janvier 2008 Share Posté(e) 31 janvier 2008 (modifié) Salut à tous, je viens de me mettre au développement python sous XBMC et j'ai des gros problèmes avec les exceptions : je n'arrive pas à obtenir correctement le Traceback J'ai bien trouvé une fonction qui marche à peu près : def Excepthook(type, value, tb): """ Intercept all exceptions out of try..except statements and make the log.txt file with traceback """ log = open(HOME_DIR+"log.txt","w") log.write("Exception report\n\n") lines=traceback.format_exception(type, value, tb) log.write("---------------------Traceback lines-----------------------\n") log.write("".join(lines)) log.write("-----------------------------------------------------------\n\n") log.write("If you think this is a bug, please send me this file. Thank you.") log.close() msgbox("An exception occured. Look at the log.txt file.", title="Problem!")sys.excepthook=Excepthook Mais cette fonction a deux inconvénients: - les erreurs levées avant la déclaration ne sont pas traitées - mais surtout, elle ne marche tout simplement pas avec WindowXML à l'intérieur des méthodes OnAction() et dérivées (OnClick,...) Y'a t-il un moyen fiable de traiter les erreurs sous XBMC ? parce que là je pédale vraiment dans la semoule.... Modifié 31 janvier 2008 par juju0 Lien vers le commentaire Partager sur d'autres sites More sharing options...
alexsolex Posté(e) 31 janvier 2008 Share Posté(e) 31 janvier 2008 Salut Moi personnellement, je ne m'attachais pas au détection de bug à ce niveau. Je me contentais au mieux, pour les zones délicates de mon code, de faire un try ... except et de remplir un fichier log 'maison'... Sinon, les commandes print simples et pratiques car elles log dans le log xbmc... Les exceptions, si elles ne sont pas gérées par le try except, sont elles aussi loggées dans le log xbmc. Gros inconvénient néammoins, il faut que l'utilisateur active le log.... (par défaut il ne l'est pas) et autre inconvénient , ca prend du temps pour écrire dans le log (on entend d'ailleur le DD qui gratte) Sinon, je me demande si y'a pas un module de debug qui existait dans des scripts python pour XBMC... C'est un truc tout fait de python qui log les erreurs. Cherche peut être de ce coté. Lien vers le commentaire Partager sur d'autres sites More sharing options...
juju0 Posté(e) 1 février 2008 Auteur Share Posté(e) 1 février 2008 Salut, merci de ta réponse. J'ai un peu cherché, et je n'étais même pas au courant pour le debug en appuyant sur le bouton blanc ! Mais pour l'instant, mon XBMCpc avec le script en développement était sur un disque qui vient d'essuyer un crash ! J'essaie de remettre tout ça en place et je reprendrais le développement ensuite. Merci encore. Lien vers le commentaire Partager sur d'autres sites More sharing options...
juju0 Posté(e) 2 février 2008 Auteur Share Posté(e) 2 février 2008 En creusant un peu plus j'ai fini par trouver une solution : Les méthodes OnAction() de WindowXML n'ont pas l'air de traiter les erreurs comme il faut mais j'ai trouvé une parade avec le module traceback : def OnAction(self, action): try: # instructions except: traceback.print_exc() Lien vers le commentaire Partager sur d'autres sites More sharing options...
alexsolex Posté(e) 3 février 2008 Share Posté(e) 3 février 2008 Voilà, je crois que c'est le module que j'avais en tête. Tu dois pouvoir faire une classe qui gèrera toutes les exceptions et donc te créer ton propre log. Je n'ai jamais fait mais je sais que ca existe. Lien vers le commentaire Partager sur d'autres sites More sharing options...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant