如果出现错误,是否可以使python打印指定的字符串?

时间:2011-07-01 23:57:13

标签: python

我的意思是,如果我得到像

这样的错误
Traceback (most recent call last):
  File "score_keeper-test.py", line 106, in <module>
    app = program()
  File "score_keeper-test.py", line 37, in __init__
    self.label1.set_text(team1_name)
TypeError: Gtk.Label.set_text() argument 1 must be string, not None

有没有办法让python打印像“你必须在TWO框中输入一个名字”而不是上面的错误?

2 个答案:

答案 0 :(得分:9)

Pythonic成语是EAFP:比请求更容易请求宽恕。在这种情况下:

try:
    self.label1.set_text(team1_name)
except TypeError:
    print "You MUST enter a name in the TWO boxes"

请注意我是如何明确捕获TypeError的。这是PEP 8 -- Style Guide for Python Code推荐的(任何Python程序员的必要读数):

  

捕获异常时,请尽可能提及特定异常,而不是使用裸except:子句。

另一种(不推荐的)方法是:

if team1_name:
    self.label1.set_text(team1_name)
else:
    print "You MUST enter a name in the TWO boxes"

...这是LBYL的一个例子:在你跳跃之前先看看。这种风格可能会使您的代码散落在if - 语句中。

答案 1 :(得分:2)