Maison > Article > développement back-end > Description détaillée des exceptions en python
Chaque exception est une instance d'une classe. Ces instances peuvent être déclenchées et détectées de plusieurs manières, afin que le programme puisse détecter les erreurs et les gérer
>>> 1/0 Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> 1/0 ZeropisionError: integer pision or modulo by zero
Pour intercepter les exceptions, les instructions try/sauf peuvent être utilisées.
>>> def inputnum(): x=input('Enter the first number: ') y=input('Enter the first number: ') try: print x/y except ZeroDivisionError: print "The second number can't be zero" >>> inputnum() Enter the first number: 10 Enter the first number: 0 The second number can't be zero
déclencher une exception
>>> class Muff: muffled=False def calc(self,expr): try: return eval(expr) except ZeroDivisionError: if self.muffled: print 'Division by zero is illegal' else: raise >>> c=Muff() >>> c.calc(10/2) Traceback (most recent call last): File "<pyshell#33>", line 1, in <module> c.calc(10/2) File "<pyshell#31>", line 5, in calc return eval(expr) TypeError: eval() arg 1 must be a string or code object >>> c.calc('10/2') >>> c.calc('1/0') Traceback (most recent call last): File "<pyshell#35>", line 1, in <module> c.calc('1/0') File "<pyshell#31>", line 5, in calc return eval(expr) File "<string>", line 1, in <module> ZeroDivisionError: integer pision or modulo by zero >>> c.muffled=True >>> c.calc('1/0') Division by zero is illegal
Plusieurs types d'exceptions
try: x=input('Enter the first number:') y=input('Enter the seconed number:') print x/y except ZeroDivisionError: print "The second number can't be zero!" except TypeError: print "That wasn't a number,was it?"
Attraper plusieurs exceptions en même temps
try: x=input('Enter the first number:') y=input('Enter the seconed number:') print x/y except(ZeroDivisionError,TypeError,NameError): print 'Your numbers were bogus...'
Attraper objet
try: x=input('Enter the first number:') y=input('Enter the seconed number:') print x/y except(ZeroDivisionError,TypeError),e: print e Enter the first number:1 Enter the seconed number:0 integer pision or modulo by zero
Attraper toutes les exceptions
try: x=input('Enter the first number:') y=input('Enter the seconed number:') print x/y except: print 'something wrong happened...' Enter the first number: something wrong happened...
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!