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

时间:2012-10-19 13:37:00

标签: python exception-handling

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

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

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

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

同样,上面给出的示例的想法不是制作自定义错误消息,而是为了抑制可能发生的错误,而不会警告用户或其他程序模块,出现问题。

4 个答案:

答案 0 :(得分:3)

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

a[index(a,'foo')]

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


作为一项非常重要的规则,仅处理您知道如何处理的异常。上面的例子做得很好。奖励。

答案 1 :(得分:1)

这很好,但取决于你正在检查的条件。开发人员有责任检查这些条件。一些例外对于该计划是致命的,有些则可能不是。一切都取决于方法的背景。

答案 2 :(得分:1)

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

对于其他语言,情况也是如此,但您应该尝试确保您不会使用不同的行为模仿其他函数,同时隐藏例外。

答案 3 :(得分:1)

如果您知道错误发生的确切位置以及错误原因,那么这种处理方式没有任何问题。因为你知道可能会发生错误,你只是采取了适当的行动。

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