PythonでStopIteration例外をキャッチする方法は?
イテレータが完了すると、次のメソッドでStopIterationが発生します。この例外はエラーとは見なされません。
例外をキャッチしてそのタイプを知るために、指定されたコードを次のように書き直します。
import sys try: z = [5, 9, 7] i = iter(z) print i print i.next() print i.next() print i.next() print i.next() except Exception as e: print e print sys.exc_type
<listiterator object at 0x0000000002AF23C8> 5 9 7 <type 'exceptions.StopIteration'>
-
PythonでIOError例外をキャッチする方法は?
IOError例外 存在しないファイルを開こうとしたときのprintステートメントやopen()関数など、入出力操作が失敗したときに発生するエラーです。また、オペレーティングシステム関連のエラーに対しても発生します。 指定されたコードがtryブロックで記述されている場合、入出力例外が発生します。これは、以下に示すように、exceptブロックで処理されます。 例 import sys def whatever(): try: f = open ( "foo.txt", 'r' ) except IOError, e: print e print sys.
-
PythonでKeyError例外をキャッチする方法は?
辞書のキーとして値が見つからない場合、KeyErrorが発生します。指定されたコードは、例外をキャッチしてそのタイプを見つけるために次のように書き直されます。 例 import sys try: s = {'a':5, 'b':7}['c'] except: print (sys.exc_info()) 出力 (<type 'exceptions.KeyError'>, KeyError('c',), <traceback object at 0x0000000003203748&g