texchange_rate: log full traceback in case of unexpected exception - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 13563697f53e4660aad29b10b3e91abd43c27955 DIR parent 57768244bbb1997c3f45a41fa8217d1779cc8105 HTML Author: SomberNight <somber.night@protonmail.com> Date: Fri, 20 Nov 2020 01:45:11 +0100 exchange_rate: log full traceback in case of unexpected exception related: #6748 Diffstat: M electrum/exchange_rate.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) --- DIR diff --git a/electrum/exchange_rate.py b/electrum/exchange_rate.py t@@ -11,6 +11,7 @@ from decimal import Decimal from typing import Sequence, Optional from aiorpcx.curio import timeout_after, TaskTimeout, TaskGroup +import aiohttp from . import util from .bitcoin import COIN t@@ -82,9 +83,12 @@ class ExchangeBase(Logger): except asyncio.CancelledError: # CancelledError must be passed-through for cancellation to work raise - except BaseException as e: + except aiohttp.ClientError as e: self.logger.info(f"failed fx quotes: {repr(e)}") self.quotes = {} + except Exception as e: + self.logger.exception(f"failed fx quotes: {repr(e)}") + self.quotes = {} self.on_quotes() def read_historical_rates(self, ccy, cache_dir) -> Optional[dict]: t@@ -110,9 +114,12 @@ class ExchangeBase(Logger): self.logger.info(f"requesting fx history for {ccy}") h = await self.request_history(ccy) self.logger.info(f"received fx history for {ccy}") - except BaseException as e: + except aiohttp.ClientError as e: self.logger.info(f"failed fx history: {repr(e)}") return + except Exception as e: + self.logger.exception(f"failed fx history: {repr(e)}") + return filename = os.path.join(cache_dir, self.name() + '_' + ccy) with open(filename, 'w', encoding='utf-8') as f: f.write(json.dumps(h))