Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonでNameError例外をキャッチする方法をわかりやすく解説

NameErrorは、コード内で現在のスコープに存在しない名前(変数や関数など)を参照したときに発生する例外です。典型的な例としては、定義していない変数名をそのまま使ってしまうケースが挙げられます。

以下のコードでは、try-except文を使ってNameErrorを捕捉し、エラーメッセージと例外の種類を確認しています。

サンプルコード

import sys

try:
    def foo():
        print(magnolia)
    foo()
except NameError as e:
    print(e)
    print(type(e).__name__)

実行結果

name 'magnolia' is not defined
NameError

このように、except NameError as eの形式で書くことで、発生した例外オブジェクトを変数eとして受け取り、エラーメッセージや例外の種類をプログラム内で自由に扱うことができます。

なお、Python 3では旧バージョンで使われていたsys.exc_typeが廃止されているため、例外の型を取得するにはtype(e)type(e).__name__を使用します。

NameErrorは実行時まで気づきにくいエラーですが、適切に例外処理を行うことで、プログラムが突然終了するのを防ぎ、ユーザーに分かりやすいメッセージを表示できます。

  1. PythonでIOError例外をキャッチする方法【初心者向けにわかりやすく解説】

    IOError例外とは? IOError(入出力エラー)は、入出力操作が失敗したときに発生する例外です。代表的な例としては、存在しないファイルをopen()関数で開こうとした場合や、OSに関連するエラーが発生した場合などが挙げられます。 なお、Python 3ではIOErrorはOSErrorの別名(エイリアス)となっており、どちらの名前で捕捉しても同じ例外を受け取ることができます。 try-exceptブロックで例外を処理する ファイルを開く処理などをtryブロック内に記述すると、入出力例外が発生した際にexceptブロックで適切に処理できます。以下に具体的なコード例を示します。 コード例(

  2. PythonでKeyError例外をキャッチする方法をわかりやすく解説

    Pythonでは、辞書(dict)に存在しないキーを使って値へアクセスしようとすると、KeyError例外が発生します。この記事では、try-except文を使ってKeyErrorをキャッチし、例外の種類や詳細情報を確認する方法を解説します。 KeyErrorが発生する仕組み 次のコードは、辞書に存在しないキー c で値を取得しようとしているため、KeyErrorが発生します。sys.exc_info() を使うと、発生した例外の型などの情報を取得できます。 import sys try: s = {a: 5, b: 7}[c] except: print(sys.exc_i