各例外は何らかのクラスのインスタンスです。これらのインスタンスはさまざまな方法で発生させてキャッチできるため、プログラムはエラーをキャッチして処理できます
>>> 1/0 Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> 1/0 ZeroDivisionError: integer division or modulo by zero
例外処理
例外をキャッチするには、try/excel を使用できます。声明。
>>> 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
例外をトリガーする
>>> 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 division or modulo by zero >>> c.muffled=True >>> c.calc('1/0') Division by zero is illegal
複数の例外タイプ
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?"
複数の例外を同時にキャッチする
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...'
オブジェクトをキャッチする
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 division or modulo by zero
すべての例外をキャッチする
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...
Python の例外の分析に関連するその他の記事については、お支払いくださいPHP中国語ウェブサイトに注意!