代码之家  ›  专栏  ›  技术社区  ›  DCR

Python try-except块未引发正确错误

  •  -1
  • DCR  · 技术社区  · 8 月前

    我有以下代码:

    num2hgh = Exception
    txt = 'enter your grade '
    while True:
        try:
            grade = int(input(txt))
            print(grade)
            if grade > 100:
                raise num2hgh
        except num2hgh:
            txt = 'Grade to high, enter again: '
        except ValueError:
            txt = 'Please enter an integer; '
        else:
            break
    

    当我输入abc时,我没有得到ValueError,我一直得到num2hh错误。为什么?(我一直在网上搜索,找不到一个例子)

    1 回复  |  直到 8 月前
        1
  •  1
  •   Köksal kotan    8 月前

    因为num2hh中的Exeption中已经有一个ValueError,所以根据操作的顺序,因为Exession中有一个Value Error,所以它从那里退出。

    如果你这样修复代码,它就会工作

    ​
    
    num2hgh = Exception
    txt = 'enter your grade '
    while True:
        try:
            grade = int(input(txt))
            print(grade)
            if grade > 2:
                raise num2hgh
        except ValueError:
            txt = 'Please enter an integer; '
        except num2hgh:
            txt = 'Grade to high, enter again: '
        else:
            break