Created
June 27, 2013 09:22
-
-
Save y-oda-oni-juba/5875154 to your computer and use it in GitHub Desktop.
msgpack-rpc クライアント言語毎の RPC例外
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
=============================== | |
クライアント言語毎の PRC例外 | |
=============================== | |
C++ ( jubatus-msgpack-rpc ) | |
-------------------------------- | |
例外クラス階層 CODE コメント | |
-- | |
std::runtime_error | |
rpc_error (なし) 基底クラス | |
timeout_error raw_ref "request timed out" | |
connect_error raw_ref "connect failed" | |
too_many_session_error (なし) RPC実行前に発生するので特別扱い | |
request_cancelled raw_ref "request cancelled" | |
call_error (なし) 基底クラス | |
connection_closed_error raw_ref "connection closed" | |
system_error any negative integer | |
no_method_error integer 1 | |
argument_error integer 2 | |
remote_error any raw | |
※ C++ では、RPCエラーが発生した場合、エラー種別は上記の CODE 欄に | |
記載した「msgpack オブジェクト」によってセッションオブジェクトに | |
通知, 記録される。これをあとで読み出し、CODE値に該当する例外クラスに | |
翻訳、RPCエラーを例外としてアプリケーションに送出する | |
※ raw_ref: バイト列(文字列)へのポインタ値, ref: バイト列(文字列) | |
Ruby | |
---- | |
例外クラス階層 | |
-- | |
StandardError CODE コメント | |
Error | |
RPCError - | |
TimeoutError .TimeoutError | |
TransportError .TransportError | |
NetworkUnreachableError .TransportError.NetworkUnreachableError 未使用 | |
ConnectionRefusedError .TransportError.ConnectionRefusedError 未使用 | |
ConnectionTimeoutError .TransportError.ConnectionTimeoutError | |
MalformedMessageError .TransportError.ConnectionRefusedError 未使用, CODE値不正 | |
StreamClosedError .TransportError.StreamClosedError 未使用 | |
CallError .CallError | |
NoMethodError .CallError.NoMethodError | |
ArgumentError .CallError.ArgumentError 未使用??? | |
ServerError .ServerError | |
ServerBusyError .ServerError.ServerBusyError 未使用 | |
RemoteError (空文字列) | |
RuntimeError .RuntimeError | |
(user defined error) | |
※ Ruby では、RPCエラーが発生した場合、エラー種別は上記の CODE 欄に | |
記載した「文字列」によってセッションオブジェクトに通知, 記録される。 | |
これをあとで読み出し、CODE値に該当する例外クラスに | |
翻訳、RPCエラーを例外としてアプリケーションに送出する | |
Python | |
------ | |
例外クラス階層 CODE コメント | |
-- | |
Exception | |
RPCError .RPCError | |
TimeoutError .TimeoutError | |
TransportError .TransportError | |
CallError .NoMethodError コード値不正 | |
NoMethodError .CallError.NoMethodError | |
ArgumentError .CallError.ArgumentError | |
※ 例外送出の仕組みは Ruby と同じ | |
Java | |
----- | |
例外クラス階層 CODE | |
-- | |
RuntimeException | |
RPCError (なし) 基底クラス | |
RemoteError RemoteError | |
ArgumentError RemoteError.ArgumentError | |
NoMethodError RemoteError.NoMethodError | |
TimeoutError TimeoutError | |
TransportError TransportError | |
※ 例外送出の仕組みは Ruby と同じ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment