6章例外

Pythonは例外(exception)を使ってエラーや異常を通知する。Pythonはエラーを検出すると例外を生成(raise)する —— つまり、例外オブジェクトを例外伝播メカニズムに渡すことで、異常な状態が発生したことを知らせる。コードでは、raise文を実行することで、例外を明示的に生成できる。

例外の処理(handling)は、この伝播メカニズムから例外オブジェクトを取り出し、異常な状態に対処するために必要なアクションを実行することを意味する。プログラムが例外を処理しない場合、そのプログラムはエラーメッセージとトレースバックメッセージを表示して終了する。ただし、プログラムで例外を処理すれば、エラーやその他の異常が発生しても実行を継続することができる。例外の処理には、try文とexcept句を使う。

Pythonでは、エラーではなく、異常ですらない状況を知らせる目的でも例外を使う。たとえば、3.9.4.1項で説明したように、イテレータで組み込み関数nextを呼び出すと、イテレータの要素がなくなったときにStopIterationが生成される。これはエラーではない —— ほとんどのイテレータは最終的に要素を使い果たすため、異常ですらない。したがって、Pythonにおいてエラーやその他の特殊な状況を調べて対処するための最適な戦略は、他の言語のものとは異なっている。そうした戦略については、6.9節で取り上げる。

本章では、エラーや特殊な状況での例外の使い方について説明する。また、6.9.3項では標準ライブラリのloggingモジュールを取り上げ、6.10節ではassert文を取り上げる。

6.1 try文

try文は、Pythonの中核的な例外処理メカニズムであり、次の3種類のオプション句を使う複合文である。 ...

Get Pythonクイックリファレンス 第4版 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.