I wrote a library that sometimes raises exceptions. There is an exception that I want to deprecate, and I would like to advise people to stop catching them, and provide advises in the warning message. But how to make an exception emit a DeprecationWarning when catched?
library code
import warnings
class MyException(ValueError):
    ...
    warnings.warn(
        "MyException is deprecated and will soon be replaced by `ValueError`.",
        DeprecationWarning,
        stacklevel=2,
    )
    ...
def something():
    raise MyException()
user code
try:
    mylib.something()
except MyException: # <-- raise a DeprecationWarning here
    pass
How can I modify MyException to achieve this?
 
     
    