KeyError を warning にする
- ref:2007-11-29 - プログラミング日記
- ref:jijixi's diary - sm1506603 (忙しい人のための 「たたかえ!キャシャーン」(Full Ver.)) , そろそろ 6.3-Release も近いようだが , エラーでなく..
Python の場合、組み込みクラスのオブジェクトに setattr できないんだよなぁ。ちなみに基底クラスのメソッドを呼び出すなら super を使うのが常套手段な気がする。
まぁ、どうせやるならこれくらい。該当箇所のファイル名、行番号が出まする。
import sys import traceback class MyDict(dict): def __getitem__(self, key): try: return super(MyDict, self).__getitem__(key) except KeyError, e: tb = sys.exc_info()[2] info = traceback.extract_stack(tb.tb_frame)[-2] print >>sys.stderr, """KeyError %r: at %s:%d""" % (e.message, info[0], info[1])