#エラーと例外の概念
エラー: 1. 構文エラー: コードは次のようになります。インタプリタまたはコンパイラの構文に準拠していない 2. ロジック エラー: 不完全または不正な入力または計算の問題例外: 実行中に数千のオブジェクトが発生し、プログラムの実行が失敗します1. プログラムでロジックまたはアルゴリズムの問題が発生しました
# 2. 動作中のコンピューター エラー (メモリ不足または IO エラー)
##エラーと例外の違い
エラー:
コードを実行する前の構文エラーまたはロジック エラー。 構文エラーは実行前に変更する必要があります。ロジック エラーは変更できません。例外は次のとおりです。 1. 例外が発生し、エラーが検出され、インタプリタがそれを例外とみなして、例外がスローされます; 2. 例外処理、例外をインターセプトします。例外を処理するプログラムを無視または終了します。 Python の一般的なエラー一般的なエラー: ipython の下で# 1. a: NameError
を直接参照します。変数が定義されていない場合の変数
2. True の場合 : SyntaxError
構文エラー
3. f = open('1.txt') : IOError
存在しないファイルを開こうとした場合
4. 10/0 : ZeroDivisionError
5. a = int('dd') : ValueError
強制的な型変換の実行中にエラーが発生しました
try- -Except 例外処理 (1)
try-Except: 例外処理
try: try_suite except Exception [, e]: exception_block
1.try は、次のエラーをキャプチャするために使用されます。 try_suite を実行し、例外処理に渡します。
2.例外は例外の処理に使用されます。例外処理がキャプチャされた例外の設定と一致する場合は、例外ブロックを使用して例外を処理します。
例:
try: a except Exception, e: print e
try-excel キャプチャされた例外の分析:
ケース 1:
try: undef except: print 'catch an except'
ケース 2:
try: if undef except: print 'catch an except'
ケース 1: 例外は、次の理由によりキャッチできます。は実行時エラーです
ケース 2: 構文エラーであるため例外をキャッチできません。前のエラーを実行してください
ケース 3:
try: undef except NameError, e: print 'catch an except', e Case 4: try: undef except IOError, e: print 'catch an except', e
ケース 3: 例外はキャッチできますcatch NameError 例外が設定されているため、キャッチされる可能性があります。
ケース 4: IOError が設定されており、処理されないため、例外をキャッチできません。 NameError
try--例外処理 (2)
try-Except: 複数の例外を処理します
try: try_suite except Exception1 [e]: exception_block1 except Exception2 [e]: exception_block2 except ExceptionN [e]: exception_blockN
try-Except --else use
try: try_suite except Exception1 [e]: exception_block1 else: none_exception
例外がない場合は、次のコードを実行します。 else ステートメント
try--finally ステートメント
try-finally ステートメント:
try: try_suite finally: do_finally
1. Try の場合、ステートメントはエラーをキャプチャせず、コードは do_finally ステートメントを実行します。
2. try ステートメントがエラーをキャプチャした場合、プログラムは最初に do_finally ステートメントを実行し、次にキャプチャしたエラーを Python インタープリターに渡して処理します。
try-finally ステートメント:
ルール: try-finally は、例外が検出されたかどうかに関係なく、finally コードを実行します。
関数: ファイルを閉じたり、システム リソースを解放したりするために使用される、例外処理イベントのクリーンアップ メカニズムを提供します
try-excel-finally 使用法:
try: try_suite except: do_except finally: do_finally
1. try ステートメントが例外をキャッチしない場合は、try コード セグメントを実行した後、finally
2 を実行します。try が例外をキャッチした場合、エラーの処理を除いて最初に実行し、その後、finally
try-excel-else-finally を実行します。使用:
try: try_suite except: do_except else: do_else finally: do_finally
1. try ステートメントが例外をキャッチしない場合は、 try コード ブロック、else コード ブロックを実行、最後にfinally
2を実行します。try が例外をキャッチした場合は、まずエラーを処理する以外を実行し、次にステートメント
を使用してfinallyを実行します。with ステートメント:
with context [as var]:
with_suite
1.with ステートメントは、try-excel-finally ステートメントを置き換えるために使用されます。コードがより簡潔になります;
2.コンテキスト式はオブジェクトを返します;
3.var はコンテキスト戻りオブジェクト、単一の戻り値またはタプルを保存するために使用されます;
4.with_suite は、var 変数を使用してコンテキスト戻りオブジェクトを操作します。
……
raise およびassertraise ステートメント raise ステートメントは、積極的に例外をスローするために使用されます。
構文形式: raise [例外 [, args]]
Exception: 例外クラス
args: 例外を説明するタプル情報
例:
raise TypeError raise TypeError, 'Test Error' raise IOError, 'File Not Exist'
assert ステートメント
Assertion ステートメント: Assert ステートメントは、式が true かどうかを確認するために使用されます。false の場合は、AssertionError が発生します。
文法形式:assert式 [, args]
式:式
引数:判定条件の記述情報
例:
assert 7==6 assert 0, 'Test Error'
Python の標準例外とカスタム例外
標準例外: Python 組み込み例外、プログラム実行
カスタム例外は以前から存在していました:
1. Python ではカスタム例外が許可されています。 Python に関係しない異常な状況を説明するために使用されます
2. カスタム例外は例外クラスを継承する必要があります
3. カスタム例外はアクティブにのみトリガーできます
カスタム例外の例:
class FileError(IOError): pass raise FileError, 'Test FileError' class CustomError(Exception): def __init__(self, info): Exception.__init__(self) self.errorinfo = info def __str__(self): return 'CustomError: %s' % self.errorinfo try: raise CustomError('test CustomError') except CustomError, e: print 'Error Info : %s' % e
関連する推奨事項:「
Python チュートリアル」
以上がPythonの例外とエラーの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。