python 异常处理不带 except 为什么会报错?

python 异常处理不带 except 为什么会报错?

题目:字符出现的最后一个位置,下面代码需要输出:cbda
这个题目我的疑问是:remove不存在的元素自然是会报错,用上try和finally,还是报错,带上except就不会报错,try和finally不能这样用吗?

x = "abcbda"

a = list(x)[1:]

print(a)

y = list(x)[0:1]

print(y)

for b in a[:]:

print(b)

try:

y.remove(b)

#except就不会报错, Exception:

# print()

finally:

y.append(b)

print(y)


回答:

如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。

finally:是无论是否发生异常都会执行。


回答:

可以这样用,你的错不是语法错,是运行时错。

你确实抛出了一个 exception 没有处理,当然会报错。finally 并不处理错误,也不会忽略错误。

以上是 python 异常处理不带 except 为什么会报错? 的全部内容, 来源链接: utcz.com/p/938658.html

回到顶部