From c20436aed00eacd654e8fafe721fa64cf4ac1acf Mon Sep 17 00:00:00 2001 From: =?utf8?q?Henryk=20Pl=C3=B6tz?= Date: Thu, 9 Aug 2018 19:21:13 +0200 Subject: [PATCH] Nicer exception stack traces, again --- fints/parser.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/fints/parser.py b/fints/parser.py index 11f864c..81ef477 100644 --- a/fints/parser.py +++ b/fints/parser.py @@ -139,11 +139,14 @@ class FinTS3Parser: raise ValueError("Required field {}.{} was not present".format(seg.__class__.__name__, name)) break - if not constructed: - setattr(seg, name, val) - else: - deg = self.parse_deg_noniter(field.type, val, field.required) - setattr(seg, name, deg) + try: + if not constructed: + setattr(seg, name, val) + else: + deg = self.parse_deg_noniter(field.type, val, field.required) + setattr(seg, name, deg) + except ValueError as e: + raise ValueError("Wrong input when setting {}.{}".format(seg.__class__.__name__, name)) from e else: i = 0 while True: @@ -152,11 +155,14 @@ class FinTS3Parser: except StopIteration: break - if not constructed: - getattr(seg, name)[i] = val - else: - deg = self.parse_deg_noniter(field.type, val, field.required) - getattr(seg, name)[i] = deg + try: + if not constructed: + getattr(seg, name)[i] = val + else: + deg = self.parse_deg_noniter(field.type, val, field.required) + getattr(seg, name)[i] = deg + except ValueError as e: + raise ValueError("Wrong input when setting {}.{}".format(seg.__class__.__name__, name)) from e i = i + 1 -- 2.39.5