This might be a silly question, so I did some research on these questions:
How do I raise the same Exception with a custom message in Python?
Proper way to declare custom exceptions in modern Python?
But none of these are matches what I'm trying to do for my CLI script, namely:
1.) If a certain Exception is raised, I want to re-raise the same Exception, with a tailored message instead of the default one.
2.) I am not looking to redefine a custom Exception type, just the same Exception.
3.) I am not looking to print a console text.  I want to actually raise Exception because I need the exit code to be as close as possible as if the original Exception was raised since another process relies on this code.
4.) I want the error to be as short as possible, straight and to the point.  A full trace back is not necessary.
So for example, these are what I've tried:
Attempt 1:
def func():    
    try:
        1/0
    except ZeroDivisionError:
        raise ZeroDivisionError("Don't do that you numbnut!")
Result 1:
Traceback (most recent call last):
  File "c:\Users\Dude\test.py", line 3, in <module>
    1/0
ZeroDivisionError: division by zero
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "c:\Users\Dude\test.py", line 5, in <module>
    raise ZeroDivisionError("Don't do that you numbnut!")
ZeroDivisionError: Don't do that you numbnut!
[Done] exited with code=1 in 2.454 seconds
This meets my goal of #1, 2 and 3 are met, but the trace back is way too long... I don't need the original Exception at all, just the custom message.
Attempt 2:
def catch():
    try:
        1/0
        return None
    except ZeroDivisionError:
        return ZeroDivisionError("Don't do that you numbnut!")
error = catch()
if error:
    raise error
Result 2:
Traceback (most recent call last):
  File "c:\Users\Dude\test.py", line 10, in <module>
    raise error
ZeroDivisionError: Don't do that you numbnut!
[Done] exited with code=1 in 2.458 seconds
This gets me very close to what I want and is what I'm doing, however it feels quite unpythonic and pylint complains about the raise error line:
Raising
NoneTypewhile only classes or instances are allowedpylint(raising-bad-type)
I also tried the methods in my linked questions, but they are unsatisfactory to all of my requirements as well. For the purpose of succinctness I have not included my attempts of those here.
My question is thus: is there a better, more obvious way to catch an Exception and re-raise it with a custom message that I'm simply missing?
 
     
    