我正在尝试使用异常处理创建一个简单的程序(用于学习目的)。 我想做的是:
try:
x = int(input())
except ValueError as var:
# HERE I WANT TO USE THE 'x' STRING VALUE
我知道使用例外消息的各种方式(例如使用str(var)
)。
例如,如果输入为bla
会导致ValueError异常,print(var)
会输出invalid literal for int() with base 10: 'bla'
,这实际上并不可用。
但是,我创建了这个应该使用str(var)
的程序:
try:
x = int(input())
except ValueError as var:
s = str(var)
print('Exception message: ' +s)
i=0
while (s[i] != '\''):
i = i+1
i = i+1
print_str = ''
while (s[i] != '\''):
print_str = print_str + str(s[i])
i++
print('print_str = ' + print_str)
这个程序可能会在一些变化之后起作用。
所以我的问题是:是否有更直接的方法来获取'x'字符串值?
答案 0 :(得分:4)
您无法访问x
中的except
,因为它从未被分配 - int(input(...))
之前x =
中的异常被抛出x = input(...)
try:
x = int(x)
except ValueError:
print("Couldn't make '{0}' an integer.".format(x))
} 发生。相反,做:
{{1}}
答案 1 :(得分:1)
进一步jonsharpe的响应,在编译时发生>时,您无法捕获大多数SyntaxError
。因此,即使运行代码也没有任何希望,更不用说从错误中恢复了。