错误处理方法

时间:2015-07-10 12:00:39

标签: python

在C中,如果我没错,main函数如果没有错误则返回0,如果发生错误则返回0不等。

是否适合在Python中执行相同操作(只要函数不必返回任何特定值,而只需返回一个指示成功/失败的值);或者只是处理异常?

2 个答案:

答案 0 :(得分:13)

在Python中,您不应使用返回值来指示错误。您应该使用例外。

所以,要么让爆炸的异常爆发,要么抛出新的异常。

def check_foo(foo):
    if foo == bar:
        do_something(args)

try:
    check_foo(...)
except SomeError:
    # Oops! Failure!
    something_went_wrong()
else:
    # Yay! Success!
    everything_went_well()

在某些情况下,使用返回布尔值的函数是有意义的,但不应该用于指示错误

这通常用于例行检查,其中某些事情可能是真或假,也不是例外(即

def is_foo(foo):
    return foo == "foo"

答案 1 :(得分:3)

不,你不应该。 Python有其他形式的错误处理,如果你真的想要返回成功代码true和false是更好的方法。作为调用者,您应该能够假设一切都按预期进行,然后如果出现问题,您可能会抛出某种描述性错误。