Python 2.7 la gestion des exceptions syntaxe
Je suis un peu confus au sujet de l'essayer exception de l'utilisation dans Python 2.7.
try:
raise valueError("sample value error")
except Exception as e:
print str(e)
try:
raise valueError("sample value error")
except Exception,exception:
print str(exception)
try:
raise valueError("sample value error")
except exception:
print str(exception)
try:
raise valueError("sample value error")
except Exception:
print str(Exception) # it prints only the object reference
certains peuvent m'aider à comprendre la ci-dessus l'usage?
- Si vous voulez attraper une exception et faire quelque chose avec elle, de l'utilisation de votre premier exemple. Le dernier exemple est lorsque vous n'avez pas de soins sur la capture de l'erreur, vous voulez simplement savoir si une exception a été levée. Le dernier exemple est plus, comme le contrôle de flux. Le premier exemple est plus le fait de voir pourquoi un certain échec de l'appel.
- Veuillez vous limiter à votre question. Vous semblez demander tutorat un peu plus large que StackOverflow du but. Vous devez exécuter chacun de ces exemples, examinez la sortie, et de les comparer avec les descriptions de vos manuels scolaires et de documents en ligne. Si vous ne comprenez toujours pas un résultat spécifique, le poste de l'exemple, la sortie, et une description de l'endroit où vous êtes confus. Pour commencer, notez que "d'Exception" est une classe très basique, à condition que la partie du langage Python; "exception" est une variable globale.
Vous devez vous connecter pour publier un commentaire.
Quelques concepts pour vous aider à comprendre la différence entre les différentes variantes de la
except
variantes:except Exception, e
– Ce dans une ancienne variante, maintenant obsolète, semblable àexcept Exception as e
except Exception as e
– intercepter des exceptions du typeException
(ou d'une sous-classe) et de les stocker dans la variablee
pour la poursuite du traitement, de la messagerie ou similaireexcept Exception
– Intercepter des exceptions du typeException
(ou d'une sous-classe), mais ignorer la valeur/l'information fournie à l'exceptionexcept e
– Me donne une erreur de compilation, vous ne savez pas si ce lié à la version de python, mais si oui, il devrait ou pourrait signifier que vous n'avez pas de soins sur le type d'exception mais qui veulent accéder à l'information en elleexcept
– Catch aucune exception, et ignorer l'exception de l'informationÀ utiliser, dépend de nombreux facteurs, mais si vous n'avez pas besoin de ces informations à l'exception il n'est pas nécessaire de présenter la variable d'attraper cette information.
Sur le type de
Exception
à attraper, prendre soin d'attraper le précise le type des exceptions. Si vous êtes à la rédaction d'un général de l'attraper tout, c'est peut être correct d'utiliserexcept Exception
, mais dans le cas de l'exemple que vous avez donné, j'opterais pour, en fait, à l'aide deexcept ValueError
directement. Cela permettrait potentiellement d'autres exceptions à être géré correctement à un autre niveau de votre code. Le point est, ne l'attrape pas exception, vous n'êtes pas prêt à gérer.Si vous le souhaitez, vous pouvez en savoir plus sur python 2.7 la gestion des exceptions ou disponible python 2.7 exception dans la documentation officielle.
J'utilise:
Quand je veux déclarer une erreur spécifique et
Quand je n'ai pas vraiment de soins ou
except: pass
,except: return
etcUtiliser le format