为什么除了 NameError 没有在我的代码中发现名称错误?

Why isn't the except NameError picking up the name error on my code?

我正在尝试让用户输入一个整数,同时尝试捕获他们输入的浮点数或字符串时出现的错误。任何帮助都会很棒!!

try:
    user_input = int(input())
except ValueError:
    print("Please enter a whole number with no decimal points")
except NameError:
    print("user_input not defined")

当您尝试访问尚未声明的变量时调用 NameError。但是在这段代码中,你总是会创建user_input,所以try块不能转到nameerror块。