我正在尝试确定数据存储区中是否存在按实体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的好/可接受使用吗?
答案 0 :(得分:3)
使用裸except
从不是可接受的理由。始终只捕获 您实际准备处理的例外情况。
然而,在这种情况下,它比无用更糟糕。 get_by_id
不会引发异常,所以没有必要抓一个。 (int
当然可以提升ValueError
如果值没有转换为整数,但你最好单独处理它。)如果具有该ID的实体不存在,{{{ 1}}只返回None。你应该检查一下并采取适当的行动。