繁体   English   中英

在 Python 中使用“try”和“except”选项时无法出错

[英]Unable to get error when using "try" and "except" option in Python

我正在尝试运行代码以显示除 TypeError 之外的其他错误。

我正在使用的代码如下:

A = 1
B = "2"
try:
    C = A + B + D
except TypeError:
    print("Type Error")

预期输出如下:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-2-6b5697b50966> in <module>
      1 A = 1
      2 B = 2
----> 3 C = A + B + D

NameError: name 'D' is not defined

但是,实际输出如下:

Type Error

有人可以提出相同的解决方案吗?

我试图删除 try-except 并收到此错误:

TypeError: unsupported operand type(s) for +: 'int' and 'str'

说明:您已经在尝试添加AB时发现了一个错误,因此您的代码将停止执​​行并且找不到第二个错误。


编辑:正如评论中所建议的,如果您先添加AD然后B ,则会显示NameErrorA + D + B

Edit2:如果您认为您可能有不同类型的错误,一种可能性(例如,如果您希望在特定类型的错误上发生不同的事情)是有多个例外,如下所示:

A = 1
B = "2"
try:
    C = A + D + B
except NameError:
    print("ERROR: NameError")
except TypeError:
    print("ERROR: TypeError")

产生这个输出:

ERROR: NameError

Python 将首先评估A + B然后添加D 因此,在注意到D未定义并抛出NameError之前,python 将抛出TypeError ,因为+运算符不适用于整数和字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM