LA_*_*LA_ 6 python google-app-engine exception app-engine-ndb
我使用以下代码来获取基于urlsafe key给出的实体:
q_key = ndb.Key(urlsafe=key)
q = q_key.get()
return q
Run Code Online (Sandbox Code Playgroud)
但是如果没有给定urlsafe密钥的这样的实体,它会ProtocolBufferDecodeError: Unable to merge from string在第一行返回
,当我期望q等于None.除了捕获ProtocolBufferDecodeError异常之外,还有其他正确的方法来处理这种情况吗?
解决方法是......
from google.net.proto.ProtocolBuffer import ProtocolBufferDecodeError
try:
q_key = ndb.Key(urlsafe=key)
q = q_key.get()
except ProtocolBufferDecodeError:
q = None
return q
Run Code Online (Sandbox Code Playgroud)
我有点疑惑为什么这不是一个更常见的抱怨.没有人用无效密钥测试他们的网址吗?
你可以试试这个
try:
q_key = ndb.Key(urlsafe=key)
q = q_key.get()
except ProtocolBufferDecodeError:
q = None
return q
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
987 次 |
| 最近记录: |