プログラム動作中にNetworkErrorが発生したのですがこれをキャッチしようとしてexceptに明記したのですがそのようなエラーは定義されていないと言われました。
エラー名が間違っているのでしょうか。
ConnectionError:やRemoteDisconnected:も表示されているのですがこちらもキャッチした方が良いのでしょうか。
調べたのですが似たような事案を見つけられず困っております。
お知恵を貸してください。よろしくお願いします。
python3
1import ccxt 2import traceback 3import time 4 5mex=ccxt.bitmex() 6fly=ccxt.bitflyer() 7 8 9while(True): 10 start=time.time() 11 try: 12 mex_ticker=mex.fetch_ticker(symbol='BTC/USD') 13 fly_ticker=fly.fetch_ticker(symbol='BTC/JPY') 14 except NetworkError: 15 time.sleep(3) 16 traceback.print_exc() 17 continue 18 except: 19 traceback.print_exc()
--------------------------------------------------------------------------- RemoteDisconnected Traceback (most recent call last) /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/urllib3/connectionpool.py in urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw) 600 body=body, headers=headers, --> 601 chunked=chunked) 602 386 # otherwise it looks like a programming error was the cause. --> 387 six.raise_from(e, None) 388 except (SocketTimeout, BaseSSLError, SocketError) as e: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/urllib3/packages/six.py in raise_from(value, from_value) 382 try: --> 383 httplib_response = conn.getresponse() 384 except Exception as e: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py in getresponse(self) 1330 try: -> 1331 response.begin() 1332 except ConnectionError: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py in begin(self) 296 while True: --> 297 version, status, reason = self._read_status() 298 if status != CONTINUE: 265 # sending a valid response. --> 266 raise RemoteDisconnected("Remote end closed connection without" 267 " response") RemoteDisconnected: Remote end closed connection without response During handling of the above exception, another exception occurred: ProtocolError Traceback (most recent call last) 439 retries=self.max_retries, --> 440 timeout=timeout 441 ) /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/urllib3/connectionpool.py in urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw) 638 retries = retries.increment(method, url, error=e, _pool=self, --> 639 _stacktrace=sys.exc_info()[2]) 640 retries.sleep() 356 if read is False or not self._is_method_retryable(method): --> 357 raise six.reraise(type(error), error, _stacktrace) 358 elif read is not None: 684 if value.__traceback__ is not tb: --> 685 raise value.with_traceback(tb) 686 raise value 600 body=body, headers=headers, --> 601 chunked=chunked) 602 /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/urllib3/connectionpool.py in _make_request(self, conn, method, url, timeout, chunked, **httplib_request_kw) 386 # otherwise it looks like a programming error was the cause. --> 387 six.raise_from(e, None) 388 except (SocketTimeout, BaseSSLError, SocketError) as e: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/urllib3/packages/six.py in raise_from(value, from_value) /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/urllib3/connectionpool.py in _make_request(self, conn, method, url, timeout, chunked, **httplib_request_kw) 382 try: --> 383 httplib_response = conn.getresponse() 384 except Exception as e: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py in getresponse(self) 1330 try: -> 1331 response.begin() 1332 except ConnectionError: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py in begin(self) 296 while True: --> 297 version, status, reason = self._read_status() 298 if status != CONTINUE: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py in _read_status(self) 265 # sending a valid response. --> 266 raise RemoteDisconnected("Remote end closed connection without" 267 " response") ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',)) During handling of the above exception, another exception occurred: ConnectionError Traceback (most recent call last) /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/ccxt/base/exchange.py in fetch(self, url, method, headers, body) 422 timeout=int(self.timeout / 1000), --> 423 proxies=self.proxies 424 ) /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/sessions.py in request(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json) 507 send_kwargs.update(settings) --> 508 resp = self.send(prep, **send_kwargs) 509 /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/sessions.py in send(self, request, **kwargs) 617 # Send the request --> 618 r = adapter.send(request, **kwargs) 619 /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/adapters.py in send(self, request, stream, timeout, verify, cert, proxies) 489 except (ProtocolError, socket.error) as err: --> 490 raise ConnectionError(err, request=request) 491 ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',)) During handling of the above exception, another exception occurred: NetworkError Traceback (most recent call last) <ipython-input-360-b459938ea1de> in <module>() 22 mex_ticker=mex.fetch_ticker(symbol='BTC/USD') ---> 23 fly_ticker=fly.fetch_ticker(symbol='BTC/JPY') 24 except NetworkError: 167 'product_code': self.market_id(symbol), --> 168 }, params)) 169 timestamp = self.parse8601(ticker['timestamp']) /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/ccxt/base/exchange.py in request(self, path, api, method, params, headers, body) 361 def request(self, path, api='public', method='GET', params={}, headers=None, body=None): --> 362 return self.fetch2(path, api, method, params, headers, body) 363 /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/ccxt/base/exchange.py in fetch2(self, path, api, method, params, headers, body) 358 request = self.sign(path, api, method, params, headers, body) --> 359 return self.fetch(request['url'], request['method'], request['headers'], request['body']) 360 /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/ccxt/base/exchange.py in fetch(self, url, method, headers, body) 452 if ('ECONNRESET' in error_string) or ('Connection aborted.' in error_string): --> 453 self.raise_error(NetworkError, url, method, e) 454 else: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/ccxt/base/exchange.py in raise_error(self, exception_type, url, method, error, details) 343 output = ' '.join([self.id] + [var for var in (url, method, error, details) if var is not None]) --> 344 raise exception_type(output) 345 NetworkError: bitflyer https://api.bitflyer.jp/v1/getticker?product_code=BTC_JPY GET ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',)) During handling of the above exception, another exception occurred: NameError Traceback (most recent call last) <ipython-input-360-b459938ea1de> in <module>() 22 mex_ticker=mex.fetch_ticker(symbol='BTC/USD') 23 fly_ticker=fly.fetch_ticker(symbol='BTC/JPY') ---> 24 except NetworkError: 25 time.sleep(3) 26 traceback.print_exc() NameError: name 'NetworkError' is not defined
cctx.NetworkError とか?

回答1件
あなたの回答
tips
プレビュー