Pythonの例外とエラーの違い

藏色散人
リリース: 2019-07-03 15:57:01
オリジナル
5179 人が閲覧しました

Pythonの例外とエラーの違い

#エラーと例外の概念

エラー:

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 およびassert

raise ステートメント 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート