Skip to content

Commit 8949b49

Browse files
committed
handling of errors
1 parent 6c3034b commit 8949b49

File tree

2 files changed

+4
-6
lines changed

2 files changed

+4
-6
lines changed

pyat/at/latticetools/observablelist.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def __getitem__(self, item):
6262
else:
6363
val = super().__getitem__(item)
6464
if isinstance(val, Exception):
65-
raise AtError(f"Evaluation failed: {val.args[0]}") from val
65+
raise type(val)(val.args[0]) from val
6666
return val
6767

6868
def __iter__(self):

pyat/at/latticetools/observables.py

+3-5
Original file line numberDiff line numberDiff line change
@@ -330,11 +330,9 @@ def evaluate(self, *data, initial: bool = False):
330330
"""
331331
for d in data:
332332
if isinstance(d, Exception):
333-
errtype = type(d)
334-
err = errtype(f"Evaluation of {self.name} failed: {d.args[0]}")
335-
err.__cause__ = d
333+
message = f"Evaluation of {self.name} failed: {d.args[0]}"
334+
err = type(d)(message).with_traceback(d.__traceback__)
336335
self._value = err
337-
self._shape = None
338336
return err
339337

340338
val = np.asarray(self.fun(*data, *self.args, **self.kwargs))
@@ -360,7 +358,7 @@ def value(self):
360358
"""Value of the observable."""
361359
val = self._value
362360
if isinstance(val, Exception):
363-
raise val
361+
raise type(val)(val.args[0]) from val
364362
return val
365363

366364
@property

0 commit comments

Comments
 (0)