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例外を発生させないため、例外をキャッチしても意味がありません。(値が整数に変換されない場合はもちろんinta を上げることができますが、それを個別に処理するのが最善です。) その ID を持つエンティティが存在しない場合は、単純に None を返します。それを確認し、適切に行動する必要があります。ValueErrorget_by_id

于 2013-06-06T14:44:29.860 に答える