我有一个应用程序经常使用redis.lock.Lock
(来自官方的redis-py软件包)。它要么被我正在开发的软件直接使用,要么被其他软件包使用。在极少数情况下,我最终会使用LockError
(例如,如果应用程序被错误地重新启动)。
我设法捕获了这些Exceptions
,但在可用的属性中,只有错误消息,而没有Lock
的名称(这将允许我执行清理任务)。
有没有办法向LockError
对象添加信息,或者如何从within except块中找到Lock
名称(请记住,我不能修改Lock
实现,也不能创建继承它的类,因为它可能是从我不拥有的代码示例化的)?
代码示例:
try:
do_many_things_with_many_locks()
except LockError as le:
# How to retrieve which lock failed?
字符串
1条答案
按热度按时间yhived7q1#
由于不能子类化和修改
Lock
实现,因此可以内省异常并从Lock
对象中检索名称。字符串
比如说,
型