情境: 我的库中有一些自定义异常类,用户在他们的代码中使用。出于某种原因,我想重命名其中一个异常并弃用旧的异常。
保留旧异常作为别名并不难:
我希望在用户尝试捕获错误时发出警告,而不仅仅是在用户抛出错误时。请问有什么方法可以做到这一点吗?(因为用户此处没有调用函数,所以我无法引发弃用警告)
保留旧异常作为别名并不难:
class MyNewError(ValueError):
pass
MyOldError = MyNewError
但我最终想要移除我的库中旧的错误名称,因此我希望在下游代码中使用此自定义异常的用户能收到一个DeprecationWarning提醒,告知该错误将被删除。
我想在以下用例中引发DeprecationWarning(假设包含自定义异常的库名为mypackage
):
# downstream user code
import mypackage
...
try:
....
except mypackage.MyOldError:
....
我希望在用户尝试捕获错误时发出警告,而不仅仅是在用户抛出错误时。请问有什么方法可以做到这一点吗?(因为用户此处没有调用函数,所以我无法引发弃用警告)