我的 django 视图通过一个列表,使用正则表达式来检测列表中的特定元素,最后返回内容的字典。两者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
为什么记录器没有记录异常?