使用布尔表达式进行异常处理

时间:2016-06-10 14:52:22

标签: python-2.7 exception-handling

是否可以在使用try / except进行异常处理时包含一个类似于我的布尔表达式?

例如:

while True:
try:
    grade = float(input('Please enter your your score:'))
    break
except ValueError:
    print('Please enter a numeric value, you dingus!')
except (grade > 1):
    print('Not a valid number, please re-enter:')
except NameError:
    print('Please enter a numeric value, you dingus!')

我希望字符串输入由除NameError之外的'处理。'我希望通过打印来处理大于1的数字,而不是有效的数字,请重新输入:'

按原样,程序按预期处理字符串和有效的数字输入。但是,当我输入大于1的数字时,程序接受我的输入并且不做任何其他操作。否命令执行,并且没有任何内容传递给此异常处理代码段下面的函数。该程序刚刚停止,没有给出任何错误来帮助调试。

1 个答案:

答案 0 :(得分:3)

试一试:

while True:
  try:  
    grade = float(input('Please enter your your score:'))
    if grade > 1:
      raise ValueError
  except ValueError:
      print('Not a valid number, please re-enter.')
  except NameError:
      print('Please enter a numeric value, you dingus!')
  except SyntaxError:
      print('Please enter something, anything!?')