例外の構成: 例外の種類: 例外の説明情報 ZeroDivisionError: ゼロによる除算 ValueError: 基数 10 の int() の無効なリテラル: 'a' 例外のキャッチ: プログラムの実行中にエラーが発生しました。プログラムを終了させずに実行を継続し、ユーザーに例外メッセージを表示し、エラーを記録します。 単一の例外をキャッチします。 try: 例外以外の 例外を引き起こす可能性のあるコードです。 type: 例外が発生したときに実行されるコード try: num=input('値を入力してください') num =10/int(num) print(num) # ZeroDivisionError: ゼロによる除算 # ValueError: 基数 10 の int() の無効なリテラル: ZeroDivisionError を除く 'a': print('divisor not be 0') 複数の例外をキャッチするために 試してください: 発生する可能性のある例外コード else (例外タイプ 1、例外タイプ 2、...): 例外が発生したときに実行されるコード try: 例外が発生する可能性のあるコード、 例外が発生したときに実行されるコード 例外タイプ 1 以外の 例外タイプ 2 を除く: コードが異常に実行されました ...... try: num=input('値を入力してください') num=10/int(num) print(num) # ZeroDivisionError: ゼロによる除算 # ValueError : 無効基数 10 の int() のリテラル: ZeroDivisionError を除く'a' : print('除数を 0 にすることはできません') ValueError を除く: print('入力エラー。数値を入力してください') 例外情報をキーワードとして出力 try: 例外が発生する可能性があります 例外の種類 1 を除くコードを変数名として指定: print(例外変数名)例外の種類 2 を除く 例外の実行コードを 変数名として: print(例外変数名) 例外の実行コード ..... すべてをキャッチ 異常欠点: 取得できない例外情報 try: 例外が発生する可能性のあるコード 例外 例外: 異常実行されたコードが発生しました Exception は共通例外クラスの親クラスです ZeroDivisionError-->ArithmeticError-->Exception-->BaseException-->object ValueError-->Exception-->BaseException-->object 異常な完全な構造 try: 例外が発生する可能性があります例外以外のコード : 例外が発生して実行されるコード else: 例外が発生しないコード finally: 例外 の有無に関係なく実行される 、または例外キャプチャ 1. try のネスト内 try がネストされている場合、内部の Try が例外をキャッチしない場合、外部の Try が例外を受信して処理し、 それでも外部の Try が例外をキャッチできない場合は、配信します。。。 インポート時間 try: f = open('test.txt') try: while True: content = f.readline() if len(content) == 0: Break time.sleep(2) print(content) Final: f.close() print('ファイルを閉じる') 例外: print("そのようなファイルはありません") 2. 入れ子関数 内の関数で例外が発生した場合たとえば、関数 A-->関数 B-->関数 C を呼び出し、関数 C で例外が生成された場合、 例外が関数 C で処理されない場合、例外は関数 B に渡されます。 B に例外処理がある場合は 関数 B の処理方法に従って実行され、関数 B に例外処理がない場合は例外が渡され続けます。。 すべての関数が処理されない場合、この時点でデフォルトの例外処理が実行されます。つまり、通常見られるように、 def test1(): print("----test1-1----") print( num) print("----test1-2----") def test2(): print("----test2-1----") test1() try: def test3(): test1() print("----test3-2----") 例外 結果として例外: print("例外がキャッチされました。情報は次のとおりです: %s"%result) print(" -- --test3-2----") test3() print("------素晴らしい分割線-----") test2() カスタム例外をスローします raise ステートメントは例外 例外/エラーを発生させますオブジェクトには名前が必要です。Error または Exception のサブクラスである必要があります。 1. カスタム例外クラス、Exception または BaseException を継承します。 2. 書き込みを選択し、__init__、__str__ メソッドを定義します 。 3. 適切なタイミングで例外オブジェクトをスローします 。 class PasswardLengthError (例外): pass def get_passward(): passward=input('パスワードを入力してください') if len(passward)>=6: print('修飾されたパスワードの長さ') else: raise PasswardLengthError('パスワードの長さが 6 文字に足りません') try: get_passward() 例外 PasswardLengthError: print('パスワードの長さが 6 文字に足りません')
4日目-----異常
おすすめ
転載: blog.csdn.net/m0_46493223/article/details/126090975
ランキング