検索

Python のエラーと例外の概念 (合計)

1. エラーと例外の処理方法

  1. 一般的なエラー

  2. a: NameError

  3. if True: SyntaxError

  4. f = oepn( ' 1.txt'): IOError

  5. 10/0: ZeropisionError

  6. a = int('d'): ValueError

  7. プログラム実行中断: KeyboardInterrupt

2. Python - try_before 処理を使用します。例外 (1)

try:
    try_suite
except Exception [e]:
    exception_block
  1. try は、try_suite でエラーをキャプチャし、例外の処理に渡すために使用されます

  2. 例外の処理が例外の処理に使用される場合は、例外ブロックを使用して例外を処理します。例外を処理します

# case 1
try:
    undef
except:
    print 'catch an except'
# case 2
try:
    if undef
except:
    print 'catch an except'
  • case1: 例外は実行時エラーであるためキャッチできます

  • case2: 例外は構文エラーまたは実行前エラーであるためキャッチできません

- -

# case 3
try:
    undef
except NameError,e:
    print 'catch an except',e
# case 4
try:
    undef
except IOError,e:
    print 'catch an except',e
  • case3: 設定が NameError 例外をキャプチャするため、例外をキャッチできます

  • case 4: IOError が設定されており、NameError が処理されないため、例外をキャッチできません

import random

num = random.randint(0, 100)

while True:
    try:
        guess = int(raw_input("Enter 1~100"))
    except ValueError, e:
        print "Enter 1~100"
        continue
    if guess > num:
        print "guess Bigger:", guess
    elif guess < num:
        print "guess Smaller:", guess
    elif guess == num:
        print "Guess OK,Game Over"
        break
    print &#39;\n&#39;

3. Pythonはtry_excelを使用して例外を処理します(2)

  • try-Except: 複数の例外を処理します

try:
    try_suite
except Exception1[e]:
    exception_block1
except Exception2[e]:
    exception_block2
except ExceptionN[e]:
    exception_blockN

4. Python-try_finallyは

try:
    try_suite
finally:
    do_finally
  • を使用しますtryステートメントがキャッチされない場合エラーが発生すると、コードは do_finally ステートメントを実行します

  • try ステートメントがエラーをキャッチすると、プログラムは最初に do_finally ステートメントを実行し、その後、キャプチャされたエラーは処理のために Python インタープリターに渡されます

5。 -try-excel-else-finally

 try:
    try_suite
 except:
    do_except
 finally:
    do_finally

  • try ステートメントが例外をキャプチャしない場合は、try コード セグメントを実行した後、finally を実行します

  • try が例外をキャッチした場合は、エラーの処理を除いて最初に実行されます。そして、finally

を実行します

  • 6. Python-with_asステートメント

    with context [as var]:
        with_suite

  • withステートメントは、コードをより簡潔にするためにtry_excel_finalステートメントを置き換えるために使用されます

  • context式returnはオブジェクトです

  • varはコンテキスト戻りオブジェクト、単一の戻り値、または祖先を保存するために使用されます

with_suite は、var 変数を使用してコンテキスト戻りオブジェクトを操作します

  1. with ステートメントは本質的にコンテキスト管理です:

    __enter__()__exit()__,支持该协议的对象要实现这两个方法

  2. 上下文管理器:定义执行with语句时要建立的运行时上下文,负责执行with语句块上下文中的进入与退出操作

  3. 进入上下文管理器:调用管理器__enter__方法,如果设置as var语句,var变量接受__enter__()方法返回值

  4. 退出上下文管理器:调用管理器__exit__

  5. コンテキスト管理プロトコル: が含まれていますメソッド __enter__()__exit()__。このプロトコルをサポートするオブジェクトは、これら 2 つのメソッドを実装する必要があります

    コンテキスト マネージャー: with ステートメントの実行を定義します。確立されるコンテキストは、with ステートメント ブロック コンテキストでの開始操作と終了操作の実行を担当します
  1. コンテキスト マネージャーに入る: マネージャーの __enter__ メソッドを呼び出します。as var ステートメントが設定されている場合、 var 変数 __enter__() メソッドの戻り値を受け入れます
  2. コンテキスト マネージャーを終了します: マネージャーの __exit__ メソッドを呼び出します
  3. class Mycontex(object):
        def __init__(self, name):
            self.name = name
    
        def __enter__(self):
            print "__enter__"
            return self
    
        def do_self(self):
            print "do_self"
    
        def __exit__(self, exc_type, exc_val, exc_tb):
            print "__exit__"
            print "Error:", exc_type, " info:", exc_val
    
    
    if __name__ == "__main__":
        with Mycontex(&#39;test context&#39;) as f:
            print f.name
            f.do_self()
  4. whith ステートメント アプリケーション シナリオ:

ファイル プロセス スレッド間でミューテックス オブジェクト (ミューテックス ロックなど) を操作します

  • コンテキストをサポートするその他のオブジェクト

    • 2. Python のアサートおよびレイズ ステートメント

    • raisステートメント

    • reiseステートメントは、積極的に例外をスローするために使用されます

    • 文法形式: raise[例外[,args]]

例外: 例外クラス
  • args: 例外情報のタプルを記述します
    • raise TypeError, &#39;Test Error&#39;
      raise IOError, &#39;File Not Exit&#39;

    • assertステートメント

    • Assertionステートメント:assertステートメントは、式がtrueであるかどうかをチェックするために使用され、AssertionErrorが発生します

    • グラム形式:assertexpression[ ,args ]

expression:expression

  • args:判定条件の記述情報

    • assert 0, &#39;test assert&#39;
      assert 4==5, &#39;test assert&#39;
    • 2. Pythonの標準例外とカスタム例外

    • 標準例外

      Python のエラーと例外の概念

    Python が構築されました -例外では、プログラムが実行される前にすでに存在します
    • カスタム例外:

    • Python では、Python に関係しない異常な状況を記述するためにカスタム例外を許可します

カスタム例外は継承する必要があります例外クラス


カスタム例外はアクティブにのみトリガーできます


class CustomError(Exception):
    def __init__(self, info):
        Exception.__init__(self)
        self.message = info
        print id(self)

    def __str__(self):
        return &#39;CustionError:%s&#39; % self.message


try:
    raise CustomError(&#39;test CustomError&#39;)
except CustomError, e:
    print &#39;ErrorInfo:%d,%s&#39; % (id(e), e)
🎜🎜🎜🎜 Python のエラーと例外の概念に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。 🎜🎜🎜🎜
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Pythonの融合リスト:適切な方法を選択しますPythonの融合リスト:適切な方法を選択しますMay 14, 2025 am 12:11 AM

Tomergelistsinpython、あなたはオペレーター、extendmethod、listcomfulting、olitertools.chain、それぞれの特異的advantages:1)operatorissimplebutlessforlargelist;

Python 3の2つのリストを連結する方法は?Python 3の2つのリストを連結する方法は?May 14, 2025 am 12:09 AM

Python 3では、2つのリストをさまざまな方法で接続できます。1)小さなリストに適したオペレーターを使用しますが、大きなリストには非効率的です。 2)メモリ効率が高い大規模なリストに適した拡張方法を使用しますが、元のリストは変更されます。 3)元のリストを変更せずに、複数のリストをマージするのに適した *オペレーターを使用します。 4)Itertools.chainを使用します。これは、メモリ効率が高い大きなデータセットに適しています。

Python Concatenateリスト文字列Python Concatenateリスト文字列May 14, 2025 am 12:08 AM

Join()メソッドを使用することは、Pythonのリストから文字列を接続する最も効率的な方法です。 1)join()メソッドを使用して、効率的で読みやすくなります。 2)サイクルは、大きなリストに演算子を非効率的に使用します。 3)リスト理解とJoin()の組み合わせは、変換が必要なシナリオに適しています。 4)redoce()メソッドは、他のタイプの削減に適していますが、文字列の連結には非効率的です。完全な文は終了します。

Pythonの実行、それは何ですか?Pythonの実行、それは何ですか?May 14, 2025 am 12:06 AM

pythonexexecutionistheprocessoftransforningpythoncodeintoexecutabletructions.1)interpreterreadSthecode、変換intobytecode、thepythonvirtualmachine(pvm)executes.2)theglobalinterpreeterlock(gil)管理委員会、

Python:重要な機能は何ですかPython:重要な機能は何ですかMay 14, 2025 am 12:02 AM

Pythonの主な機能には次のものがあります。1。構文は簡潔で理解しやすく、初心者に適しています。 2。動的タイプシステム、開発速度の向上。 3。複数のタスクをサポートするリッチ標準ライブラリ。 4.強力なコミュニティとエコシステム、広範なサポートを提供する。 5。スクリプトと迅速なプロトタイピングに適した解釈。 6.さまざまなプログラミングスタイルに適したマルチパラダイムサポート。

Python:コンパイラまたはインタープリター?Python:コンパイラまたはインタープリター?May 13, 2025 am 12:10 AM

Pythonは解釈された言語ですが、コンパイルプロセスも含まれています。 1)Pythonコードは最初にBytecodeにコンパイルされます。 2)ByteCodeは、Python Virtual Machineによって解釈および実行されます。 3)このハイブリッドメカニズムにより、Pythonは柔軟で効率的になりますが、完全にコンパイルされた言語ほど高速ではありません。

ループvs whileループ用のpython:いつ使用するか?ループvs whileループ用のpython:いつ使用するか?May 13, 2025 am 12:07 AM

useaforloopwhenteratingoverasequenceor foraspificnumberoftimes; useawhileloopwhentinuninguntinuntilaConditionismet.forloopsareidealforknownownownownownownoptinuptinuptinuptinuptinutionsituations whileoopsuitsituations withinterminedationations。

Pythonループ:最も一般的なエラーPythonループ:最も一般的なエラーMay 13, 2025 am 12:07 AM

pythonloopscanleadtoErrorslikeinfiniteloops、ModifiningListsDuringiteration、Off-Oneerrors、Zero-dexingissues、およびNestededLoopinefficiencies.toavoidhese:1)use'i

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)