Python错误ByPassing

时间:2013-01-06 16:57:59

标签: python error-handling

对于多个帖子感到抱歉,我确实环顾四周,除了try方法之外找不到任何东西,这在某些情况下似乎很有用,而不是我的。

我正在寻找的是一种跳过错误的方法,所以只是在控制台中没有显示而不是停止脚本,只是绕过它们的方法。

即;

1. call a list
2. If list does not exist
3.     create the list

2 个答案:

答案 0 :(得分:5)

在Python中,这是通过try...except实现的。在您的情况下,您可能想要抓住NameError

try:
    L[0]
except NameError:
    L = ["Example",2]
    L[0]

答案 1 :(得分:1)

try .. except当然是一种方法。如果您尝试在函数中测试参数,那么使用默认值None定义此参数通常很有用,并且测试如下:

def myfunc(..., mylist=None):
    if mylist is None:
        mylist = []

(另见not None test in Python

如果您想知道列表是否为空,请输入

if mylist:
    print mylist
else:
    print "empty list"

这些类型的测试与try .. except概念之间的主要区别在于,在我的代码示例中,您必须确保定义了变量(例如作为函数参数)。否则,您将生成异常。这正是try .. except结构优雅处理的内容。

最后它可能是哲学的(我只能希望我不会违反python的zen):如果您知道哪些变量可能未定义,它可以提高代码的可读性和弹性,如果您明确地编写错误处理代码。有些人可能会说“让它发生”并且仅在必要时进行修复是更加pythonic。如果您正在编写“快速入侵”,解决方案2通常很好,如果它是其他用户应该使用的应用程序,我通常倾向于明确的错误处理。