検索
ホームページバックエンド開発Python チュートリアルPythonの例外は何ですか? Python の例外の詳細な紹介

この記事では、Python の例外とは何なのかについて説明します。 Python の例外の詳細な紹介は一定の参考価値がありますので、困っている友人は参考にしていただければ幸いです。

Python の例外は 2 種類に分類されます: 1) 構文エラー: コードが Python インタプリタの構文検出を通過しない場合、コードは実行できません 2) 例外: 実行中に検出されたエラーPython プログラムの実行は例外と呼ばれます。例外処理が行われない場合、プログラムは終了し、次のような例外情報が表示されます: ① 文字列を数値に変換するときの型変換例外、② ファイルを読み取るときのファイルが存在しない例外、③ ネットワーク リンク中のホスト到達不能例外。 .. ・待って。 Python スクリプトで例外が発生した場合は、それをキャッチして処理する必要があります。そうしないと、プログラムの実行が終了します。 結局のところ、使用しているプログラムが突然クラッシュすることは誰も望んでいません

1. 構文エラー

python 構文エラーは多くの初心者がよく遭遇する問題です。このタイプのエラーは比較的低レベルです。コードをさらに数回入力することで、このようなエラーを減らすことができます

#

>>> if Trur
  File "<stdin>", line 1
    if Trur
          ^
SyntaxError: invalid syntax
>>> print("as"))
  File "<stdin>", line 1
    print("as"))
               ^
SyntaxError: invalid syntax

例: このようなエラーは構文エラーです。1 行目の末尾の if ステートメントには「:」がありません。また、6 行目の末尾には「)」が多すぎます。

2. 例外

1) 実行時に検出されるエラーは例外と呼ばれますが、Python の構文検出ではそのようなエラーは検出できません。

>>> int("aa")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: &#39;aa&#39;
>>> f = open("aaa.txt","r")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: &#39;aaa.txt&#39;

1 行目と 5 行目で例外が発生します。例外を確認してください。次のような出力情報が表示されます。以下

#2) Python の標準例外クラス

BaseException がベースです

その他の Python 例外クラスについては、個別に説明しません。Baidu See# を参照してください。

3.例外処理

##プログラムの堅牢性を高め、例外発生時のプログラムのクラッシュを防ぐため、必要に応じて例外を処理します。処理が必要です

1) try-excel: ステートメント

① 最も単純な例外処理ステートメントは次のとおりです。try ステートメントがブロックされている場合で例外が発生すると、後続のステートメントは実行されなくなり (3 行目)、例外は else によってキャッチされ、プログラムは、excel のステートメント ブロックを実行した後も下方向に実行を続けます (6 行目など)。注: Except の後に例外タイプが続くことはなく、デフォルトですべての例外がキャッチされます (

try:
    int("aaa")
    print("---aaa---")
except:
    print("出现异常-->英文字母不能转换为数字")
print("----------")
# 输出结果
出现异常-->英文字母不能转换为数字
----------
②)。 マルチブランチ例外。異なる例外をキャッチする必要がある場合、複数の例外を使用できます。例外情報を取得する必要がある場合は、行 7

try:
    nu = int("100")
    print("转换后的值nu:", nu)
    i = 1 / 0
except ValueError:
    print("出现异常-->英文字母不能转换为数字")
except ZeroDivisionError as e:  # 通过 as 变量名 获取异常的对象
    print("出现异常-->除数不能为零")
    print("异常的提示信息-->", e)
except:
    pass
print("----------")


# 输出结果
转换后的值nu: 100
出现异常-->除数不能为零
异常的提示信息--> division by zero
----------

③ のように、変数名として例外オブジェクトを取得できます。同じ例外で複数の例外を押す必要があります。処理メソッドは、(ValueError, [ZeropisionError [, NameError]]):

try:
    i = 1 / 0
    nu = int("aa")
except (ValueError, ZeroDivisionError) as e:
    print(e)
except:
    pass
print("----------")


# 输出结果
division by zero
----------
2) を除いて使用できます。ステートメント

##① try-excel-else-finally にfinally ステートメントが出現すると、例外が発生するかどうかに関係なく、finally ステートメント ブロック内のステートメントが実行されます。 else ステートメントは、例外が発生しない場合にのみ実行されます

例外が発生した場合、try-excel-else-finally は次のようになります##

try:
    i = 1 / 0
    print("没有出现异常i值", i)
except Exception as e:
    print("出现异常-->", e)
else:
    print("没有出现异常-->执行else")
finally:
    print("不管是否出现异常,这里的语句一定会被执行")


# 输出结果
出现异常--> division by zero
不管是否出现异常,这里的语句一定会被执行

例外が発生しない場合、try-excel-else-finally は次のようになります。

try:
    i = 1 / 1
    print("没有出现异常i值", i)
except Exception as e:
    print("出现异常-->", e)
else:
    print("没有出现异常-->执行else")
finally:
    print("不管是否出现异常,这里的语句一定会被执行")


# 输出结果
没有出现异常i值 1.0
没有出现异常-->执行else
不管是否出现异常,这里的语句一定会被执行

②. try-excel-else-finally は単独で使用することもできます。形式は 3 つあります: 1) try-excel-finally 2) try-excel-else 3) try-finally。コードはここには表示されません

4. 例外の配信

例外が発生したステートメント内に例外を処理するステートメントがない場合例外を処理するステートメントが見つかるまで、または Python インタプリタがプログラムを終了するまで、レイヤーを通過します。

def test2():
    int("aa")

def test1():
    test2()

try:
    test1()
except Exception as e:
    print(e)
print("-----------")


# 输出结果
invalid literal for int() with base 10: &#39;aa&#39;
-----------

上記のように、 test2 の 2 行目で例外が発生した場合、その例外は 5 行目に渡されます。test2 を呼び出すステートメントで渡されます。ここにはまだ例外処理ステートメントがありません。引き続き上位層に渡され、 によってキャッチされます。

#5. 例外をスローします raise

1) python

# で定義された例外をスローします##例外の型を呼び出すことで例外をスローでき、スローされた例外も例外によってキャッチされます。以下に示すように、行 4

age = 500
try:
    if age < 0 or age > 200:
        raise ValueError("age范围0-200")
    print("age", age)
except ValueError as e:
    print("出现异常-->", e)
# 输出结果
出现异常--> age范围0-200
2) はカスタム例外

をスローします。

抛出自定义异常首先得有个自定义的异常类,注:自定义的异常必须直接或间接的继承Exception基类

class MyException(Exception):  # 自定义异常类
    def __init__(self, msg):
        self.msg = msg


age = 500
try:
    if age < 0 or age > 200:
        raise MyException("age范围0-200")  # 抛出自定义异常
    print("age", age)
except MyException as e:
    print("出现异常-->", e)


# 输出结果
出现异常--> age范围0-200

当然自定义异常类也可以拥有许多的功能,就得看需求添加啦

 6、在异常处理中抛出异常 

 有某需求:当捕获到异常时处理完后想继续抛出异常.....

在except中用raise可以抛出当前异常

try:
    i = 1 / 0  # 异常的语句
except Exception as e:
    print("出现异常-->", e)
    raise  # 处理完后继续抛出异常,raise表示抛出当前异常
print("-------------")


# 输出结果
出现异常--> division by zero
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
    i = 1 / 0
ZeroDivisionError: division by zero

以上がPythonの例外は何ですか? Python の例外の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Python vs. C:比較されたアプリケーションとユースケースPython vs. C:比較されたアプリケーションとユースケースApr 12, 2025 am 12:01 AM

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間のPython計画:現実的なアプローチ2時間のPython計画:現実的なアプローチApr 11, 2025 am 12:04 AM

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Python:主要なアプリケーションの調査Python:主要なアプリケーションの調査Apr 10, 2025 am 09:41 AM

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間でどのくらいのPythonを学ぶことができますか?2時間でどのくらいのPythonを学ぶことができますか?Apr 09, 2025 pm 04:33 PM

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は?プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は?Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか?中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか?Apr 02, 2025 am 07:15 AM

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6にピクルスファイルをロードするときに「__Builtin__」モジュールが見つからない場合はどうすればよいですか?Python 3.6にピクルスファイルをロードするときに「__Builtin__」モジュールが見つからない場合はどうすればよいですか?Apr 02, 2025 am 07:12 AM

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...

風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの精度を改善する方法は?風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの精度を改善する方法は?Apr 02, 2025 am 07:09 AM

風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの問題を解決する方法は?風光明媚なスポットコメントと分析を行っているとき、私たちはしばしばJieba Wordセグメンテーションツールを使用してテキストを処理します...

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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。