用try,catch打破程序

时间:2014-05-19 02:34:11

标签: python python-2.7 python-3.x

我有一个函数t()。如果我在尝试获取a=t()的值时遇到任何错误。我想打破循环,不显示任何错误。

主要是RuntimeWarning: divide by zero encounteredRuntimeWarning: invalid value encountered in double_scalars

我尝试了以下但循环不会中断。

for i in range(100):
    try:
       a=t(i)
    except:
       print('breaking')
       break

3 个答案:

答案 0 :(得分:0)

如果需要,您可以针对警告提出错误。

import warnings
warnings.filterwarnings('error')

try:
    for x in range(0,5):
        do_something()
        warnings.warn(Warning()) # Trigger a warning to test
except:
    print "Broke"

答案 1 :(得分:0)

如果您不希望对例外做任何事情,可以使用pass。 例如:

for i in reversed(range(100)):
    try:
        print 3/i
    except:
        pass
        break

答案 2 :(得分:0)

您可以尝试使用except:RuntimeError,如果这是唯一发生的错误。

for i in range(100):
try:
    a=t(i)
except RuntimeError:
    print('breaking')
    #then continue your code here for the exception