类:Mongo::Error::Parser Private
Overview
此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。
用于解析 MongoDB 命令响应中可能出现的各种错误形式的类。
服务器可以通过多种方式报告错误:
- ok: 0响应表示失败。 在较新的服务器中,应设置 code、codeName 和 errmsg 字段。 在较旧的服务器中,有些可能未设置。
- ok: 1响应,附带写关注错误(writeConcernError 顶级字段)。 这表示响应的节点已成功执行请求,但没有足够的其他节点成功执行请求,无法满足写关注。
- ok:带有 writeErrors 顶级字段的1响应。 这可以在批量写入中获得,也可以在非批量写入中获得。 在非批量写入中,writeErrors 列表中应该只有一个错误。 出现多个错误的情况由 BulkWrite::Result 处理。
- ok:带有 writeConcernErrors 顶级字段的1响应。 它只能在批量写入中获得,并由 BulkWrite::Result 而不是此类处理。
请注意,writeErrors 没有 codeName 字段,它们仅提供代码和消息。 同样,writeConcernErrors 可能不提供代码名称。
常量摘要
SdamErrorDetection 中包含的常量
SdamErrorDetection::NODE_RECOVERING_CodeS 、 SdamErrorDetection::NODE_SHUTTING_down_CodeS 、 SdamErrorDetection::NOT_MASTER_CodeS
实例属性摘要折叠
-
# code ⇒ 整数
只读
private
从文档中解析的错误代码。
-
# code_name ⇒ string
只读
private
从文档中解析的错误代码名称。
-
# document ⇒ BSON::Document
只读
private
返回的文档。
-
# labels ⇒ Array<String>
只读
private
与错误相关的标签集。
-
# message ⇒ string
只读
private
在引发的异常中使用的完整错误消息。
-
#replies ⇒ Array<Protocol::Message>
只读
private
消息回复。
-
# server_message ⇒ string
只读
private
从响应中解析出服务器返回的错误消息。
- # wtimeout ⇒ 对象 只读 private
类方法摘要折叠
实例方法摘要折叠
-
#initialize (document, replies = nil, options = nil) ⇒ 解析器
构造函数
private
使用返回的文档创建新的解析器。
-
# write_concern_error? ⇒ true | false
文档是否包含写关注错误。
-
# write_concern_error_code ⇒ 整数 | nil
写关注错误的错误代码(如果存在写关注错误并具有代码)。
-
# write_concern_error_code_name ⇒ string | nil
如果写关注(write concern)错误存在且具有代码名称,则为写关注(write concern)关注错误的代码名称。
-
# write_concern_error_document ⇒ 哈希 | nil
返回服务器报告的写关注错误文档(如果有)。
-
# write_concern_error_labels ⇒ Array<String> | nil
private
写关注错误(如果存在写关注错误)。
SdamErrorDetection 中包含的方法
#node_recovering? , #node_shutting_down? , #not_master?
构造函数详情
#initialize (文档, replies = nil, options = nil) ⇒解析器
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
使用返回的文档创建新的解析器。
85 86 87 88 89 90 91 92 93 94 |
# File 'lib/ Mongo/error/parser.rb', line 85 def 初始化(文档, 回复 = nil, = nil) @document = 文档 || {} @replies = 回复 @options = if .dup else {} end.冻结 parse! end |
实例属性详细信息
# code ⇒整数(只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回值 从文档中解析出的错误代码。
62 63 64 |
# File 'lib/ Mongo/error/parser.rb', line 62 def 代码 @code end |
# code_name ⇒ string (只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回值 从文档中解析出的错误代码名称。
66 67 68 |
# File 'lib/ Mongo/error/parser.rb', line 66 def code_name @code_name end |
# document ⇒ BSON::Document (只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 返回的文档。
47 48 49 |
# File 'lib/ Mongo/error/parser.rb', line 47 def 文档 @document end |
# labels ⇒ Array<String> (只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回与错误关联的标签集。
70 71 72 |
# File 'lib/ Mongo/error/parser.rb', line 70 def labels @labels end |
# message ⇒ string (readonly)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回要在引发的异常中使用的完整错误消息。
51 52 53 |
# File 'lib/ Mongo/error/parser.rb', line 51 def @message end |
#replies ⇒ Array<Protocol::Message> (readonly)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 回复消息。
58 59 60 |
# File 'lib/ Mongo/error/parser.rb', line 58 def 回复 @replies end |
# server_message ⇒ string (只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回值 从响应中解析出的服务器返回的错误消息。
55 56 57 |
# File 'lib/ Mongo/error/parser.rb', line 55 def @server_message end |
# wtimeout ⇒对象(只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
73 74 75 |
# File 'lib/ Mongo/error/parser.rb', line 73 def wtimeout @wtimeout end |
类方法详细信息
。 build_message (code: nil, code_name: nil, message: nil) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
# File 'lib/ Mongo/error/parser.rb', line 140 def (代码: nil, code_name: nil, 消息: nil) if code_name && 代码 " [ #{ code } : #{ code_name } ]: #{ } " elsif code_name # 如果有代号,这种情况绝对不应该发生 # 还应该提供代码。 # 为了完整性起见,处理这种情况。 " [ #{ code_name } ]: #{ } " elsif 代码 " [ #{ code } ]: #{ } " else end end |
实例方法详细信息
# write_concern_error? ⇒ true | false
返回文档是否包含写关注错误。 故障可能具有顶级错误和写关注错误,或两者之一。
102 103 104 |
# File 'lib/ Mongo/error/parser.rb', line 102 def write_concern_error? !!write_concern_error_document end |
# write_concern_error_code ⇒整数 | nil
如果存在写关注错误并具有代码,则返回该写关注错误的错误代码。
120 121 122 |
# File 'lib/ Mongo/error/parser.rb', line 120 def write_concern_error_code write_concern_error_document && write_concern_error_document[' code '] end |
# write_concern_error_code_name ⇒ string | nil
返回 如果写关注错误存在且具有代码名称,则为写关注错误的代码名称。
129 130 131 |
# File 'lib/ Mongo/error/parser.rb', line 129 def write_concern_error_code_name write_concern_error_document && write_concern_error_document[' codeName '] end |
# write_concern_error_document ⇒哈希 | nil
返回服务器报告的写关注错误文档(如果有)。
111 112 113 |
# File 'lib/ Mongo/error/parser.rb', line 111 def write_concern_error_document 文档[' writeConcernError '] end |
# write_concern_error_labels ⇒ Array<String> | nil
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
写关注错误(如果存在写关注错误)。
135 136 137 |
# File 'lib/ Mongo/error/parser.rb', line 135 def write_concern_error_labels write_concern_error_document && write_concern_error_document['errorLabels'] end |