使用异常处理程序来扩展默认方法的功能(以Python为例)

2024-04-18 18:50:57 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我是编程新手,我的问题是:

使用异常处理程序重写具有自定义功能的编程语言的默认方法的错误消息行为是否被认为是一种不良的实践?我的意思是,使用这样的东西(Python)合乎道德吗

def index(p, val):
    try:
        return p.index(val)
    except ValueError:
        return -1

也许我不够精确。我的意思是:将抛出的异常(好吧,我猜它不适用于任何地方)视为合法有效的case语句是正常的还是不推荐的做法?你知道吗

与此类似,上面给出的示例的思想不是生成自定义错误消息,而是在不警告用户或其他程序模块出了问题的情况下抑制可能发生的错误。你知道吗


Tags: 方法功能消息处理程序indexreturndef编程
3条回答

我认为这样做是可以的,只要你使用函数名,这表明用户没有使用内置的。如果用户认为他们正在使用一个内置的,突然index返回-1,想象一下可能发生的错误。。。他们会:

a[index(a,'foo')]

突然间,他们得到了列表中的最后一个元素(不是foo)。你知道吗


不过,作为一条非常重要的规则,只处理您知道如何处理的异常。上面的例子做得很好。太好了。你知道吗

这是非常好的,但取决于什么样的条件,你正在检查。开发人员有责任检查这些条件。有些异常对程序来说是致命的,有些则可能不是。这一切都取决于方法的上下文。你知道吗

对于python这样的语言,我认为为函数提供一个定制的错误消息比一般的ValueError异常要好得多。 但是,对于您自己的应用程序,在方法中使用此功能可以使代码更易于阅读和维护。你知道吗

对于其他语言,情况也是如此,但是您应该尝试并确保不要用不同的行为模仿另一个函数,同时隐藏异常。你知道吗

相关问题 更多 >