-
Pythonの例外に関する優れたリファレンスドキュメントはどこにありますか?
次のリンクは、Pythonの例外に関する優れたリファレンスドキュメントです https://docs.python.org/2/library/exceptions.html
-
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でArithmeticError例外をキャッチする方法は?
ArithmeticError Exceptionは、数値計算で発生するすべてのエラーの基本クラスです。これは、OverflowError、ZeroDivisionError、FloatingPointErrorなどの組み込み例外の基本クラスです。 次のように、指定されたコードで例外をキャッチできます 例 import sys try: 7/0 except ArithmeticError as e: print e print sys.exc_type print 'This is an example of catching ArithmeticError' 出力 int
-
PythonでOverflowError例外をキャッチする方法は?
算術演算が変数タイプの制限を超えると、OverflowErrorが発生します。長い整数は、値が大きくなるにつれてより多くのスペースを割り当てるため、MemoryErrorが発生することになります。ただし、浮動小数点の例外処理は標準化されていません。通常の整数は、必要に応じて長い値に変換されます。 例 指定されたコードは次のように例外をキャッチするように書き直されます i=1 try: f = 3.0**i for i in range(100): print i, f f = f ** 2 except OverflowError as err: print 'Overflowed a
-
PythonでIndexError例外をキャッチする方法は?
シーケンス参照が範囲外の場合、IndexErrorが発生します。 指定されたコードは、例外をキャッチしてそのタイプを見つけるために次のように書き直されます 例 import sys try: my_list = [3,7, 9, 4, 6] print my_list[6] except IndexError as e: print e print sys.exc_type 出力 C:/Users/TutorialsPoint1~.py list index out of range <type 'exceptions.IndexError'>
-
PythonでNameError例外をキャッチする方法は?
NameErrorsは、コードが現在のスコープに存在しない名前を参照している場合に発生します。たとえば、修飾されていない変数名。 指定されたコードは、例外をキャッチしてそのタイプを見つけるために次のように書き直されます。 例 import sys try: def foo(): print magnolia foo() except NameError as e: print e print sys.exc_type 出力 C:/Users/TutorialsPoint1/~.py global name 'magnolia' is not defined <type
-
PythonでEOFError例外をキャッチする方法は?
input()やraw_input()などの組み込み関数が、入力ストリームの終わりに到達する前にデータを読み取らない場合、EOFErrorが発生します。 read()のようなファイルメソッドは、ファイルの最後に空の文字列を返します。 指定されたコードは、EOFErrorをキャッチしてそのタイプを見つけるために、次のように書き直されます。 例 #eofError.py try: while True: data = raw_input('prompt:') print 'READ:', data except EOFError as e: print e Then
-
PythonでSyntaxError例外をキャッチする方法は?
SyntaxErrorは、パーサーが理解できないソースコードを見つけるたびに発生します。これは、モジュールのインポート中、execの呼び出し中、またはeval()の呼び出し中に発生する可能性があります。例外の属性を使用して、入力テキストのどの部分が例外を引き起こしたかを正確に見つけることができます。 与えられたコードを書き直して例外を処理し、そのタイプを見つけます 例 try: print eval('six times seven') except SyntaxError, err: print 'Syntax error %s (%s-%s): %s' %
-
PythonでIndentationError例外をキャッチする方法は?
インデントエラーは、パーサーがインデント規則に従わないソースコードを見つけるたびに発生します。モジュールは最初のインポート時にコンパイルされるため、モジュールをインポートするときにそれをキャッチできます。この例外を除いて、Pythonはモジュールのコンパイルを完了できず、モジュール内のコードは実行されないため、try/exceptブロックを含む同じモジュールでそれをキャッチすることはできません。 例外を処理するために、指定されたコードを次のように書き直します 例 try: def f(): z=['foo','bar'] for i in z: if i ==
-
PythonでTypeError例外をキャッチする方法は?
TypeErrorsは、間違ったタイプのオブジェクトを組み合わせたり、間違ったタイプのオブジェクトで関数を呼び出したりすることで発生します。 例 import sys try : ny = 'Statue of Liberty' my_list = [3, 4, 5, 8, 9] print my_list + ny except TypeError as e: print e print sys.exc_type 出力 can only concatenate list (not ""str") to list <type
-
PythonでEnvironmentError例外をキャッチする方法は?
EnvironmentErrorは、Pythonの外部(オペレーティングシステム、ファイルシステムなど)から発生するエラーの基本クラスです。 EnvironmentError Exceptionは、StandarErrorクラスのサブクラスです。これは、IOErrorおよびOSError例外の基本クラスです。 IOErrorやOSErrorなどのサブクラスエラーとは異なり、実際には発生しません。 IOErrorまたはOSErrorの例は、環境エラーの例でもあるはずです。 例 import sys try: f = open ( "JohnDoe.txt", 'r&
-
PythonでLookupError例外をキャッチする方法は?
LookupError Exceptionは、何かが見つからない場合に発生するエラーの基本クラスです。マッピングまたはシーケンスで使用されるキーまたはインデックスが無効な場合に発生する例外の基本クラス:IndexError、KeyError。 シーケンス参照が範囲外の場合、IndexErrorが発生します。 指定されたコードは、例外をキャッチしてそのタイプを見つけるために次のように書き直されます 例 import sys try: foo = [a, s, d, f, g] print foo[5] except IndexError as e: print e print sys.exc_
-
Pythonで例外を使用してValueErrorをキャッチする方法は?
ValueErrorは、関数が正しいタイプであるが無効な値を持つ値を受け取った場合に使用されます。 指定されたコードは、例外を処理してそのタイプを見つけるために、次のように書き直すことができます。 例 import sys try: n = int('magnolia') except Exception as e: print e print sys.exc_type 出力 invalid literal for int() with base 10: 'magnolia' <type 'exceptions.ValueError'>
-
PythonでZeroDivisionError例外をキャッチする方法は?
除算演算の分母にゼロが表示されると、ZeroDivisionErrorが発生します。 例外を処理してそのタイプを見つけるために、指定されたコードを次のように書き直します。 例 import sys try: x = 11/0 print x except Exception as e: print sys.exc_type print e 出力 <type 'exceptions.ZeroDivisionError'> integer division or modulo by zero
-
PythonでFloatingPointError例外をキャッチする方法は?
FloatingPointErrorは、浮動小数点例外制御(fpectl)がオンになっている場合に、エラーが発生する浮動小数点演算によって発生します。 fpectlを有効にするには、-with-fpectlフラグを使用してコンパイルされたインタープリターが必要です。 指定されたコードは、例外を処理してそのタイプを見つけるために次のように書き直されます。 例 import sys import math import fpectl try: print 'Control off:', math.exp(700) fpectl.turnon_sigfpe() print '
-
PythonでStandardError例外をキャッチする方法は?
StopIteration、StandardError、Warningの基本クラスであるExceptionクラスがあります。すべての標準エラーは、StandardErrorから派生しています。 ArithmeticErrror、AttributeError、AssertionErrorなどの一部の標準エラーは、基本クラスStandardErrorから派生しています。 属性の参照または割り当てが失敗すると、AttributeErrorが発生します。たとえば、存在しない属性を参照しようとする場合: 指定されたコードを書き直して例外をキャッチし、そのタイプを認識します。 例 import sys
-
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 0x000
-
PythonでSystemExit例外をキャッチする方法は?
Pythonのドキュメントでは、SystemExitはExceptionクラスのサブクラスではありません。 BaseExceptionクラスは、SystemExitの基本クラスです。したがって、特定のコードでは、コードを機能させるためにExceptionをBaseExceptionに置き換えます 例 try: raise SystemExit except BaseException: print "It works!" 出力 It works! 例外は、StandardErrorまたはExceptionではなくBaseExceptionを継承するため、例外をキャッチする
-
PythonでImportError例外をキャッチする方法は?
インポートエラーは、モジュールまたはモジュールのメンバーをインポートできない場合に発生します。 ImportErrorが発生する可能性がある2つの条件があります。 モジュールが存在しない場合。 例 import sys try: from exception import myexception except Exception as e: print e print sys.exc_type 出力 No module named exception <type 'exceptions.Imp
-
PythonでNotImplementedError例外をキャッチする方法は?
ユーザー定義の基本クラスは、NotImplementedErrorを発生させて、メソッドまたは動作をサブクラスで定義し、インターフェイスをシミュレートする必要があることを示すことができます。この例外はRuntimeErrorから派生しています。ユーザー定義の基本クラスでは、メソッドをオーバーライドするために派生クラスが必要な場合、抽象メソッドはこの例外を発生させる必要があります。 例 import sys try: class Super(object): @property &nbs