【发布时间】:2016-09-07 09:33:19
【问题描述】:
在测试一段看起来有点像这样的代码时,我感到很惊讶:
if x:
try:
obj = look-for-item-with-id==x in a db
if obj is None:
# print debug message
raise NotFound('No item with this id')
return obj
except Exception, e:
raise Error(e.message)
我预计如果 db 中没有提供 id (x) 的项目,则会引发 NotFound 异常。但是,在到达 if 子句并打印调试消息之后,它会到达 except 子句并引发异常(exc 消息是未找到项目...)。能不能有人这么好心来给我解惑?
【问题讨论】:
-
您正在提升
NotFound,捕获它,然后改为提升Error。你预计会发生什么? -
好的,我现在明白了。加薪并没有逃脱该条款,而是被抓住了。真丢脸:)
标签: python exception try-except raise