例外情况

注意强烈建议构建新应用的开发者使用 NDB 客户端库,它与 DB 客户端库相比具有多项优势,例如可通过 Memcache API 进行自动实体缓存。如果您当前使用的是较早的 DB 客户端库,请参阅 DB 到 NDB 的迁移指南

google.appengine.ext.db 包提供以下异常类:

exception Error()

这是该包中所有异常的基类。

exception BadArgumentError()
提供给查询方法的参数错误。
exception BadFilterError()
查询中的过滤器字符串无效。
exception BadKeyError()
提供的键字符串是无效的键。
exception BadPropertyError()
无法创建属性,因为其名称不是字符串。
exception BadQueryError()
查询字符串是无效的查询。
exception BadRequestError()
对数据存储区服务的请求有一个或多个无效属性。如果 Model 的某个子类使用不正确的实现替换某些方法(例如 kind()),则可能出现这种情况。
exception BadValueError()
无法为属性分配值,因为该值对于该属性类型无效。
exception ConfigurationError()
属性配置错误。
exception DuplicatePropertyError()
Model 定义有多个名称相同的属性。
exception InternalError()
数据存储区服务发生内部错误。此异常并不一定意味着操作失败。
exception KindError()
应用尝试将数据实体与不匹配该实体的 Model 类配合使用。
exception NeedIndexError()
在 SDK 无法为需要索引的查询找到匹配的索引时引发。检查管理控制台以管理索引和 index.yaml 文件。
exception NotSavedError()
执行了一个需要将对象保存(放置)到数据存储区中的操作,但对象未保存。
exception PropertyError()
引用的模型属性在数据对象上不存在。
exception ReferencePropertyResolveError()
ReferenceProperty 引用的模型不存在。请参阅参考
exception ReservedWordError()
模型定义了名称禁止使用的属性。请参阅禁止使用的属性名称
exception Rollback()
表示事务中的函数需要回滚事务,而不是提交事务。事务中未捕获的异常将导致该事务回滚。当某个函数要回滚且没有其他异常适用时,则该异常类可提供方便。
exception Timeout()
数据存储区操作超出允许的最大数据存储区操作时间时引发。此异常并不一定意味着操作失败。
exception TransactionFailedError()
即使在重试后,也无法提交事务或数据存储区操作。这通常由高争用率引起:许多其他应用实例同时更新数据,且该实例无法在固定的重试次数内提交其事务。请参阅事务

google.appengine.runtime.apiproxy_errors 包提供以下异常类:

exception CapabilityDisabledError()

表示未执行数据存储区 API 调用,因为该特定数据存储区功能不可用。