I believe a better idea isThere are several methods to useresolve it:
1. Exception Chain
2. Suppress Original Failure
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[2], line 7
5 failure()
6 except ValueError as ex:
----> 7 raise TypeError("Apology error") from None
TypeError: Apology error
3. Add Notes To Exception
You can also add explanation notes to original exception
def failure(i):
raise ValueError(f"Real error in failure method.")
try:
a = 3.1415
failure(a)
except ValueError as ex:
ex.add_note(f'The "{ex.args[0]}" happened with argument {a} when invoked from main script.')
ex.add_note('Final note: bye')
raise
which yields ...
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[14], line 6
4 try:
5 a = 3.1415
----> 6 failure(a)
7 except ValueError as ex:
8 ex.add_note(f'The "{ex.args[0]}" happened with argument {a} when invoked from main script.')
Cell In[14], line 2, in failure(i)
1 def failure(i):
----> 2 raise ValueError(f"Real error in failure method.")
ValueError: Real error in failure method.
The "Real error in failure method." happened with argument 3.1415 when invoked from main script.
Final note: bye