异常输出不正确

时间:2017-08-10 02:34:27

标签: python python-3.x

def readVal(valType, requestMsg, errorMsg):
    while True:
        val = input(requestMsg)
        try:
            val = valType(Val)
            return Val
        except:
            print(errorMsg)

print (readVal(int, 'Enter int:', 'Not as int.'))

当我输入4,5,2时,我得到以下结果。

  

输入int:4不作为int。输入int:5不作为int。输入int:2不是   中间体

我无法得到正确的答案,即4,5,2。我的计划出了什么问题?

1 个答案:

答案 0 :(得分:1)

正如语法高亮显示的那样,Valval不同。这是导致NameError的拼写错误。更大的问题是你的程序正在隐藏NameError,因为你告诉它将任何异常(无论是什么原因)转换为单个消息。

你可能打算抓住ValueErrorint会引发意外输入。