0

我正在尝试确定数据存储中是否存在按实体 ID 的模型;我正在防止用户操纵参数 /page?page_id=12345等。

 try:
     page = Page.get_by_id(int(self.request.get('page_id')))
 except:
     self.response.out.write('Invalid page id')
     return

这是对 Try / except 的良好/可接受的用法吗?

4

1 回答 1

3

从来没有一个可以接受的理由来使用裸except. 始终捕获您实际准备处理的异常。

但是,在这种情况下,它比无用更糟糕。get_by_id不会引发异常,因此捕获异常是没有意义的。(如果值不转换为整数,当然int可以引发 a ValueError,但最好单独处理。)如果具有该 ID 的实体不存在,则get_by_id简单地返回 None。你应该检查并采取适当的行动。

于 2013-06-06T14:44:29.860 回答