\

Pythonで例外が発生した場合、その例外がどの行で発生したかを知ることはデバッグに非常に役立ちます。以下に、例外が発生した行を取得する方法を示します。

tracebackモジュールを使用する

Pythonのtracebackモジュールを使用すると、例外が発生した行を簡単に取得できます。以下に一例を示します。

import traceback

try:
    print(4/0)
except ZeroDivisionError:
    print(traceback.format_exc())

このコードは、ZeroDivisionErrorが発生した行のスタックトレースを出力します。

sysモジュールとosモジュールを使用する

sysモジュールとosモジュールを使用して、例外が発生したファイル名と行番号を取得することもできます。以下に一例を示します。

import sys
import os
import linecache

def PrintException():
    exc_type, exc_obj, tb = sys.exc_info()
    f = tb.tb_frame
    lineno = tb.tb_lineno
    filename = f.f_code.co_filename
    linecache.checkcache(filename)
    line = linecache.getline(filename, lineno, f.f_globals)
    print('EXCEPTION IN ({}, LINE {} "{}"): {}'.format(filename, lineno, line.strip(), exc_obj))

try:
    print(1/0)
except:
    PrintException()

このコードは、例外が発生したファイル名、行番号、およびその行のコードを出力します。

以上の方法を使用すると、Pythonで例外が発生した行を効率的に取得できます。これにより、デバッグ作業が容易になります。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です