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

作者站长头像
站长
· 阅读数 13

题目:字符出现的最后一个位置,下面代码需要输出: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)
回复
1个回答
avatar
test
2024-07-16

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

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

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容