私の django ビューは list を通過し、正規表現を使用してリスト内の特定の要素を検出し、最終的にコンテンツの辞書を返します。リストの解析中にIndexError
との両方が発生する可能性があります。ValueError
この場合、例外を処理する必要があります。私はこのように試しました
def parse_list(oldlist):
try:
newlist=create_newlist(oldlist)
except Exception as e:
logger.debug(str(e))
else:
mydict = make_dict(newlist)
def create_newlist(oldlist):
mydict = {}
for elem in oldlist:
if re.match('somepattern',elem[0]):
mydict['somekey']=int(elem[0].strip())
else:
raise ValueError(elem[0],' expects an integer')
...
return mydict
上記の関数から発生した例外を処理するためにException
クラスを 正しい方法で使用していますか?except Exception as e:
単体テストメソッドを書いたとき
def test_me(self):
dl = parse_list(self.somelist)
print 'dl=\n',dl
self.assertTrue(len(dl),0)
コンソール出力を次のように取得しました
ERROR: test_me (myapp.tests.ParseTest)
..
IndexError: list index out of range
例外がロガーによって記録されないのはなぜですか?