2

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

使用异常处理程序来覆盖具有自定义功能的编程语言的默认方法的错误消息行为是否被认为是一种不好的做法?我的意思是,使用这样的东西(Python)在道德上是否正确:

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

也许我不够精确。我的意思是:将抛出的异常(好吧,我想它并不适用于所有地方)视为合法和有效的案例陈述是正常的还是不推荐的做法?

就像,上面给出的示例的想法不是制作自定义错误消息,而是在不警告用户或其他程序模块出现问题的情况下抑制可能发生的错误。

4

4 回答 4

3

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

a[index(a,'foo')]

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


不过,作为一个非常重要的规则,仅处理您知道如何处理的异常。你上面的例子很好地做到了这一点。荣誉。

于 2012-10-19T13:39:45.167 回答
1

如果您确切知道错误将发生在哪里以及错误的原因,那么这种处理就没有错。因为您只是对发生的错误采取适当的行动,您知道可能会发生。

所以,For E.g: - 如果您尝试将两个数字相除,并且您知道if the denominator is 0,那么您就不能相除,那么在这种情况下,您可以使用自定义消息来表示问题。

于 2012-10-19T13:40:44.527 回答
1

这很好,但取决于您正在检查的条件类型。检查这些条件是开发人员的责任。有些异常对程序来说是致命的,有些则可能不是。一切都取决于方法的上下文。

于 2012-10-19T13:39:24.320 回答
1

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

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

于 2012-10-19T13:40:09.380 回答