繁体   English   中英

Python-确定函数中是否引发异常

[英]Python - Determine if an exception was raised in a function

我目前正在编写对另一个我无法控制的Python库的扩展。 该库具有以下功能:

def xyz():
    try:
        sources = []
        ...
        #code that may add values to sources and may also throw an exception
        ...
        return sources
    except:
        return sources

如果返回一个空列表,我想以某种方式弄清楚是否是这种情况,因为引发了异常(可以在将值添加到源之前),或者仅仅是没有值被添加至源(没有引发异常)。

有任何想法吗? 同样,我对函数没有控制权,因此无法更改返回值或在函数外部添加try-> except。

您始终可以尝试使用合理的实现来对lib函数进行猴子补丁:

import insanelib

def myxyz():
    sources = []
    ...
    #code that may add values to sources and may also throw an exception
    ...
    return sources


insanelib.xyz = myxyz

或者,您可以向lib的作者提交补丁,以便他至少提供一个忽略异常的选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM