【发布时间】:2020-12-03 22:34:16
【问题描述】:
def strornum(a):
try:
return(a/1)
except Exception:
return("ERROR")
bob=strornum("W")
print(bob)
这给了我“错误”的正确错误
def strornum(a):
try:
return(a/1)
except Exception:
return("ERROR")
bob=strornum(W)
print(bob)
这没有得到处理,并给我“NameError: name 'W' is not defined” 我需要捕获这个错误
有什么想法吗?
【问题讨论】:
-
在
W的使用周围没有try/except,只是在bob=strornum(W)周围放一个,但这没有意义,因为变量在你编写脚本时是否定义,除非如果该变量在if块中定义 不要使用 NameError 做代码 -
或者解释一下为什么你认为你需要抓住它
-
错误发生在你调用函数之前。函数内部的
try怎么能捕捉到它? -
"W"表示一个字符的字符串,其唯一字符为W。W表示名为W的变量,显然没有定义。不必捕获 NameErrors,因为您在编写代码时应该已经知道代码中定义了哪些名称。 -
@PranavHosangadi 他知道这一点。他只是想让他的
try/except捕获未定义变量的错误。