8
votes

Faire de Python 2.6 EXCEPTION COMPATIBLE COMPATIBLE

J'ai le code Python suivant:

 try:
      pr.update()
 except ConfigurationException as e:
      returnString=e.line+' '+e.errormsg


0 commentaires

4 Réponses :


9
votes

Ceci est compatible en arrière:

try:
    pr.update()
except ConfigurationException, e:
    returnString=e.line+' '+e.errormsg


1 commentaires

La syntaxe est certainement compatible avec l'arrière-plan, mais ce n'est pas aussi Transférer compatible. Ceci est invalide dans Python 3 et augmente une erreur de syntaxe. Yup, ce n'est pas une erreur d'exécution, mais une erreur de temps compilée qui ne peut pas être attrapée. Voir docs.python.org/library/sys.html#ssys.exc_info et @ la réponse de Mario-Ruggier ci-dessous



1
votes
try:
    pr.update()
except ConfigurationException, e:
    returnString = e.line + " " + e.errormsg

0 commentaires

5
votes

Lire ceci: http://docs.python.org/reference /comPound_stmts.html#the-try-Statement

Et ceci: http: //docs.python .org / WhatsNew / 2.6.html # PEP-3110-EXCEPTION-Manipulation-Changements

n'utilise pas comme , utilisez un , .

La syntaxe comme n'est pas compatible avec précitée car la syntaxe , est ambiguë et doit disparaître dans Python 3.


0 commentaires

12
votes

Ceci est à la fois compatible en arrière et en avant:

import sys
try:
    pr.update()
except (ConfigurationException,):
    e = sys.exc_info()[1]
    returnString = "%s %s" % (e.line, e.errormsg)


0 commentaires