阻止Python抛出keyrerror异常

阻止Python抛出keyrerror异常,python,python-2.7,Python,Python 2.7,我在运行脚本时遇到了一个错误,我知道它就在那里,但我不想让Python打印错误。错误(它是KeyError)在if语句中。有没有办法阻止if语句打印错误消息?试试这个 while True: try: x = int(raw_input("Please enter a number: ")) break except ValueError: print "Oops! That was no valid number.

我在运行脚本时遇到了一个错误,我知道它就在那里,但我不想让Python打印错误。错误(它是KeyError)在if语句中。有没有办法阻止if语句打印错误消息?

试试这个

while True:
     try:
         x = int(raw_input("Please enter a number: "))
         break
     except ValueError:
         print "Oops!  That was no valid number.  Try again..."

如果您只想不显示错误,那么只要重定向stderr流do/dev/null(如果您有类似Unix的系统)。它也可以在Windows下完成,但在启动Python之前需要一个包装程序来执行重定向(到nul:)。但是要小心,一个未修补的KeyError将中止脚本…修复问题几乎总是比仅仅隐藏它好。如果我们能看到产生
KeyError
的代码,这会有所帮助。如果它是由某种原因引起的,比如
some dict[bogus\u key]
,您可以使用默认的方法。这是如何回答问题的?