有没有可能在发生异常的地方获取值?
Possible to get value where exception occurred?
假设我有一个这样的 for 循环
data = [1, 2, 3, '4', 5]
for d in data:
print(d * 0)
输出
TypeError: can only concatenate str (not "int") to str
然后如果我使用Try:
except
块
data = [1, 2, 3, '4', 5]
try:
for d in data:
print(d * 0)
except TypeError:
pass
输出
1
2
3
我想知道,是否可以得到跳过的值
在这种情况下 '4'
或者换句话说,是否可以获取导致异常的值?
我的问题不仅与这段代码有关,而且 Python 总体而言。
这很简单,您有失败的值,您抓住了它,只需使用该值即可。
for d in data:
try:
print(d+1)
except TypeError:
print('error caused by', d)
假设我有一个这样的 for 循环
data = [1, 2, 3, '4', 5]
for d in data:
print(d * 0)
输出
TypeError: can only concatenate str (not "int") to str
然后如果我使用Try:
except
块
data = [1, 2, 3, '4', 5]
try:
for d in data:
print(d * 0)
except TypeError:
pass
输出
1
2
3
我想知道,是否可以得到跳过的值
在这种情况下 '4'
或者换句话说,是否可以获取导致异常的值?
我的问题不仅与这段代码有关,而且 Python 总体而言。
这很简单,您有失败的值,您抓住了它,只需使用该值即可。
for d in data:
try:
print(d+1)
except TypeError:
print('error caused by', d)