Python 为什么尝试在这种情况下不起作用?

Python 为什么尝试在这种情况下不起作用?,python,try-except,Python,Try Except,我这里有一段代码: money_to_dep = int(input(f"\nHow much money do you want to deposit?(enter amount ONLY):\n>> ")) while True: try: print(money_to_dep) break except ValueError: print(f"Wrong INPUT. Try agai

我这里有一段代码:

money_to_dep = int(input(f"\nHow much money do you want to deposit?(enter amount ONLY):\n>> "))
while True:
    try:
        print(money_to_dep)
        break
    except ValueError:
        print(f"Wrong INPUT. Try again.")
        break

当我键入字符串而不是整数时,即使我执行了除ValueError之外的
,仍然会发生错误?为什么会发生这种情况?这个问题真的让我很恼火,因为我一直无法清楚地理解try-except如何处理错误。

您必须这样编写代码:

while True:
    try:
        money_to_dep = int(input(f"\nHow much money do you want to deposit?(enter amount ONLY):\n>> "))
        print(money_to_dep)
        break
    except ValueError:
        print(f"Wrong INPUT. Try again.")

当您使用int时,ValueError会出现。因此它必须在try语句中。

这意味着您的异常在try-catch之前发生。您需要将输入代码放入try中,以便它能够捕获异常

i、 e

money\u to\u dep=int(输入(f“\n您想存多少钱?(仅输入金额):\n>>”)
Exveption发生,但不在try块中,因此无法捕获。换成

为True时:
尝试:
money\u to\u dep=int(输入(f“\n您想存多少钱?(仅输入金额):\n>>”)
打印(货币部门至部门)
打破
例外情况除外,如E:
打印(f“输入错误,请重试”)
打破

int(input())
放入
try/except
语句
money\u to\u dep=int(input(f“
不在
下,请尝试:
。另外,为什么您需要
,而True:
?@shahkalpesh,我正在一个更大规模的程序中工作,我只是想缩短它,以便您理解,您必须删除例外中的中断。(据说,请重试)