Maison >développement back-end >Tutoriel Python >Analyse des exceptions en python

Analyse des exceptions en python

高洛峰
高洛峰original
2017-03-08 09:49:151538parcourir

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
ZeroDivisionError: integer division or modulo by zero

Gestion des exceptions

.

Pour intercepter les exceptions, les instructions try/sauf peuvent être utilisées.

>>> def inputnum():
    x=input(&#39;Enter the first number: &#39;)
    y=input(&#39;Enter the first number: &#39;)
    try:
        print x/y
    except ZeroDivisionError:
        print "The second number can&#39;t be zero"

        
>>> inputnum()
Enter the first number: 10
Enter the first number: 0
The second number can&#39;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 &#39;Division by zero is illegal&#39;
            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(&#39;10/2&#39;)
>>> c.calc(&#39;1/0&#39;)

Traceback (most recent call last):
  File "<pyshell#35>", line 1, in <module>
    c.calc(&#39;1/0&#39;)
  File "<pyshell#31>", line 5, in calc
    return eval(expr)
  File "<string>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero
>>> c.muffled=True
>>> c.calc(&#39;1/0&#39;)
Division by zero is illegal

Plusieurs types d'exceptions

try:
    x=input(&#39;Enter the first number:&#39;)
    y=input(&#39;Enter the seconed number:&#39;)
    print x/y
except ZeroDivisionError:
    print "The second number can&#39;t be zero!"
except TypeError:
    print "That wasn&#39;t a number,was it?"

Intercepter plusieurs exceptions en même temps

try:
    x=input(&#39;Enter the first number:&#39;)
    y=input(&#39;Enter the seconed number:&#39;)
    print x/y
except(ZeroDivisionError,TypeError,NameError):
    print &#39;Your numbers were bogus...&#39;

Capturer object

try:
    x=input(&#39;Enter the first number:&#39;)
    y=input(&#39;Enter the seconed number:&#39;)
    print x/y
except(ZeroDivisionError,TypeError),e:
    print e

    
Enter the first number:1
Enter the seconed number:0
integer division or modulo by zero

Capturez toutes les exceptions

try:
    x=input(&#39;Enter the first number:&#39;)
    y=input(&#39;Enter the seconed number:&#39;)
    print x/y
except:
    print &#39;something wrong happened...&#39;

    
Enter the first number:
something wrong happened...

Pour plus d'articles liés à l'analyse des exceptions en python, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn