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

ace*_*ana 4 exception python-2.7

在使用 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!')
Run Code Online (Sandbox Code Playgroud)

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

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

ber*_*nie 6

试一试:

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!?')
Run Code Online (Sandbox Code Playgroud)