Browse Source

rpc.py: minor error handling cleanup

The MMGen Project 4 years ago
parent
commit
4efe1c066f
1 changed files with 13 additions and 7 deletions
  1. 13 7
      mmgen/rpc.py

+ 13 - 7
mmgen/rpc.py

@@ -371,17 +371,23 @@ class RPCClient(MMGenObject):
 				try:
 					return json.loads(text,parse_float=Decimal,encoding='UTF-8')['result']
 				except:
-					raise RPCFailure(json.loads(text)['error']['message'])
+					t = json.loads(text)
+					try:
+						m = t['error']['message']
+					except:
+						try: m = t['error']
+						except: m = t
+					raise RPCFailure(m)
 		else:
 			import http
-			s = http.HTTPStatus(status)
-			m = ''
+			m,s = ( '', http.HTTPStatus(status) )
 			if text:
-				try: m = ': ' + json.loads(text)['error']['message']
+				try:
+					m = json.loads(text)['error']['message']
 				except:
-					try: m = f': {text.decode()}'
-					except: m = f': {text}'
-			raise RPCFailure(f'{s.value} {s.name}{m}')
+					try: m = text.decode()
+					except: m = text
+			raise RPCFailure(f'{s.value} {s.name}: {m}')
 
 class BitcoinRPCClient(RPCClient,metaclass=aInitMeta):