プログラム内のエラーを処理するにはさまざまな方法があります。その 1 つは、エラー コードに同意し、返されたエラー コードを使用してエラーが発生したかどうか、およびエラーの原因を判断することです。
しかし、これを行うと正しい戻り値とエラーコードが混在しやすくなり、それらを区別するために多くのコードを記述する必要があり、非常に不便です。さらに、何か問題が発生した場合は、問題を処理できる別のレベルがあることがわかるまで、一度に 1 レベルずつ次のレベルに報告する必要があります。
より成熟したアプローチは、...最終的に...この一連のエラー処理メカニズムを除いて試してみることです。このメカニズムは、通常の戻り値には影響しません。同時に、一度に 1 レベルを手動でレポートする必要はありませんが、必要なキャプチャと処理は 1 レベルだけです。
コード:
try: print open("Demo.py", 'r') n = 1 / 0 except ZeroDivisionError, e: print "zeroDivisionError", e except ValueError, e: print "ValueError", e else: print "No Error catched" finally: print "finally"
エラー処理を使用する際に注意すべき点がいくつかあります:
複数の例外を記述して複数の例外をキャッチできます
親クラスの例外は、 subclass の場合、キャッチされた例外は他の例外に渡されません。
例外なくelseを使用して状況を処理できます
finallyはエラーの有無に関係なく実行されます。
組み込み例外の種類
Pythonにおける組み込み例外の継承関係(2. の例外)ビルドインの例外で必要な例外が見つからない場合にのみ、例外をカスタマイズします。
カスタム例外をスローするには、次の構文を使用します:The class hierarchy for built-in exceptions is: BaseException +-- SystemExit +-- KeyboardInterrupt +-- GeneratorExit +-- Exception +-- StopIteration +-- StandardError | +-- BufferError | +-- ArithmeticError | | +-- FloatingPointError | | +-- OverflowError | | +-- ZeroDivisionError | +-- AssertionError | +-- AttributeError | +-- EnvironmentError | | +-- IOError | | +-- OSError | | +-- WindowsError (Windows) | | +-- VMSError (VMS) | +-- EOFError | +-- ImportError | +-- LookupError | | +-- IndexError | | +-- KeyError | +-- MemoryError | +-- NameError | | +-- UnboundLocalError | +-- ReferenceError | +-- RuntimeError | | +-- NotImplementedError | +-- SyntaxError | | +-- IndentationError | | +-- TabError | +-- SystemError | +-- TypeError | +-- ValueError | +-- UnicodeError | +-- UnicodeDecodeError | +-- UnicodeEncodeError | +-- UnicodeTranslateError +-- Warning +-- DeprecationWarning +-- PendingDeprecationWarning +-- RuntimeWarning +-- SyntaxWarning +-- UserWarning +-- FutureWarning +-- ImportWarning +-- UnicodeWarning +-- BytesWarning
上記は Python 学習メモ - エラー処理の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。