Skip to content

Commit 1ab1dbc

Browse files
authored
improve error-handling (#55)
1 parent c4795ac commit 1ab1dbc

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

src/cryptoadvance/spectrum/elsock.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -559,13 +559,15 @@ def call(self, method, params=[]) -> dict:
559559
f"Timeout in call ({self._call_timeout} seconds) waiting for {method} on {self._socket}"
560560
)
561561
res = self._results.pop(uid)
562-
if "error" in res:
563-
if "code" in res["error"] and "message" in res["error"]:
564-
raise RPCError(res["error"]["message"], res["error"]["code"])
565-
else:
566-
raise SpectrumInternalException(res)
562+
if isinstance(res, dict) and "error" in res:
563+
error = res.get("error", {})
564+
error_code = error.get("code")
565+
error_message = error.get("message")
566+
if error_code is not None and error_message is not None:
567+
raise RPCError(error_message, error_code)
567568
if "result" in res:
568569
return res["result"]
570+
raise SpectrumInternalException(res)
569571

570572
def ping(self):
571573
start = time.time()

0 commit comments

Comments
 (0)