Select Language

AI Technology Community

6.1、Python異常処理機構

例外処理も現代のプログラミング言語の基本的な特性であり、例外処理を使用することで、正常な分岐と例外的な分岐を分離することができます。これは、C言語のように正常な分岐と例外的な分岐が混在しているのとは異なります。Pythonでは、例外は特殊なオブジェクトであり、この例外オブジェクトを通じて、例外が発生したときの情報を例外処理関数に渡すことができます。

Python 2とPython 3では例外処理の構文が少し異なりますが、内部の実装メカニズムは同じです。このセクションでは、Python 3を例にして例外処理の方法を紹介します。

ほとんどの場合、私たち自身のコードは能動的に例外オブジェクトを投げ出すことはありません。私たちは他のシステム呼び出しが投げ出した例外オブジェクトを処理するだけです。そのため、例外処理は開発者が比較的関心を持つ内容です。

最も一般的な例外は、定義されていないオブジェクトを使用することです。次の通りです。

>>> non_exists         # 存在しないオブジェクトnon_existsにアクセスする
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'non_exists' is not defined

例外を処理しない場合、プログラムは直接終了します。したがって、私たちはその例外を捕捉し、例外が発生した原因を把握し、その後の処理を続けることを望んでいます。例外の処理とは、ある例外が発生した場合に、どのコードが実行され、実行後にどこから後続のコードが実行されるかを指します。

C++と同様に、例外が発生すると、コードは正常な分岐から直接、その例外オブジェクトに対応する処理分岐にジャンプして例外処理を行います。処理が完了すると、すべての例外処理分岐の後のコードが実行され、正常な分岐に戻って実行されることはありません。

では、具体的に例外の処理をどのように実現すればよいのでしょうか。次に、数篇の記事に分けて詳細に解説します。


post
  • 7

    item of content
例外処理は現代のプログラミング言語の基本的な特性でもあり、正常な分岐と例外の分岐を切り分けることができます。C言語とは異なり、正常な分岐と例外の分岐が混在することはありません。
Pythonにおいて例外は特別なオブジェクトであり、この例外オブジェクトを通じて例外発生時の情報を例外処理関数に渡すことができます。
この章では、例外の捕捉方法、例外情報の取得方法、特定の例外の無視、例外のスロー方法、カスタム例外オブジェクトの作成、そしてPython 2とPython 3における例外処理の類似点と相違点について説明します。最後に、一般的なシステム定義の例外についても紹介します。