为什么我的异常打印了两次?

问题描述 投票:0回答:1

下面的代码对我来说看起来不错,但是当我将 e0 与 except ValueError 一起使用时,它会打印两次,请帮助我迟钝的大脑

我的输入是 20.5 和 5

try:
    user_num = int(input())
    div_num = int(input())
    print(user_num / div_num)
except ValueError as e0:
    print('Input Exception: invalid literal for int() with base 10:', e0)
except ZeroDivisionError:
    print('Zero Division Exception: integer division or modulo by zero')

输出

Input Exception: invalid literal for int() with base 10: invalid literal for int() with base 10: '20.5'

尝试删除 e0,打印不带 e0 的整个语句,完美打印,但我不能放入 e0,否则由于某种原因它只会打印输出两次。

python try-catch except
1个回答
0
投票

e0
不是您尝试转换的字符串。
e0
是异常对象。打印,打印异常的消息,异常的消息是
"invalid literal for int() with base 10: '20.5'"

“以 10 为基数的 int() 的无效文字:”在输出中显示两次,因为您是手动打印它,并且 打印包含该文本的异常消息。

© www.soinside.com 2019 - 2024. All rights reserved.