引发异常后打印行
Print lines after raising exception
有没有办法在引发异常后打印出字典的内容?
假设字典是这样的,
d = {"orange":[1,2], "yellow":[5], "red":[2,6,7]}
我希望它看起来像这样:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-63-719ba08e2a6c> in <module>
----> 1 raise TypeError("This is a TypeError. Printing out contents of dictionary...")
TypeError: This is a TypeError.
orange
1
2
yellow
5
red
2
6
7
这可能吗?
将字典附加到异常消息中。
raise TypeError("This is a TypeError. Printing out contents of dictionary...\n" + str(d))
格式不对,但可以解决问题。
d = {"orange":[1,2], "yellow":[5], "red":[2,6,7]}
try:
d["melon"]
except:
raise Exception(f"{str(d)}")
或者你可以这样做:
try:
d["melon"]
except:
for k in d.keys():
print(k, d[k])
try:
# code here
except Exception as e:
# Try and replace `Exception` with the error you're getting
print(f"Error = {e}")
for name, val in zip(d.keys(), d.values()):
print(name)
for i in val:
print(i)
请注意 except Exception:
,try
循环将排除 any 错误
有没有办法在引发异常后打印出字典的内容?
假设字典是这样的,
d = {"orange":[1,2], "yellow":[5], "red":[2,6,7]}
我希望它看起来像这样:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-63-719ba08e2a6c> in <module>
----> 1 raise TypeError("This is a TypeError. Printing out contents of dictionary...")
TypeError: This is a TypeError.
orange
1
2
yellow
5
red
2
6
7
这可能吗?
将字典附加到异常消息中。
raise TypeError("This is a TypeError. Printing out contents of dictionary...\n" + str(d))
格式不对,但可以解决问题。
d = {"orange":[1,2], "yellow":[5], "red":[2,6,7]}
try:
d["melon"]
except:
raise Exception(f"{str(d)}")
或者你可以这样做:
try:
d["melon"]
except:
for k in d.keys():
print(k, d[k])
try:
# code here
except Exception as e:
# Try and replace `Exception` with the error you're getting
print(f"Error = {e}")
for name, val in zip(d.keys(), d.values()):
print(name)
for i in val:
print(i)
请注意 except Exception:
,try
循环将排除 any 错误