鱼C论坛

 找回密码
 立即注册
查看: 1084|回复: 4

[已解决]try-except语句

[复制链接]
发表于 2022-5-2 15:16:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

try:
    sum = 1 + '1'
    f = open('一个不存在的文档.txt')
    print(f.read())
    f.close()
except TypeError as reason:
    print('类型出错啦 \n错误的原因是:' + str(reason))
except OSError as reason:
    print('文件出错啦 \n错误的原因是:' + str(reason))


这里只会输出类型出错啦,后边的文件出错了不会输出
最佳答案
2022-5-2 15:19:52
本帖最后由 isdkz 于 2022-5-2 15:21 编辑

因为捕获到一个错误就不继续往下执行了,所以是不能同时捕获到两个错误的,

所以你要使用 两个 try:
  1. try:
  2.     sum = 1 + '1'
  3. except TypeError as reason:
  4.     print('类型出错啦 \n错误的原因是:' + str(reason))

  5. try:
  6.     f = open('一个不存在的文档.txt')
  7.     print(f.read())
  8.     f.close()
  9. except OSError as reason:
  10.     print('文件出错啦 \n错误的原因是:' + str(reason))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-5-2 15:19:52 | 显示全部楼层    本楼为最佳答案   
本帖最后由 isdkz 于 2022-5-2 15:21 编辑

因为捕获到一个错误就不继续往下执行了,所以是不能同时捕获到两个错误的,

所以你要使用 两个 try:
  1. try:
  2.     sum = 1 + '1'
  3. except TypeError as reason:
  4.     print('类型出错啦 \n错误的原因是:' + str(reason))

  5. try:
  6.     f = open('一个不存在的文档.txt')
  7.     print(f.read())
  8.     f.close()
  9. except OSError as reason:
  10.     print('文件出错啦 \n错误的原因是:' + str(reason))
复制代码

评分

参与人数 1贡献 +3 收起 理由
python爱好者. + 3 鱼C有你更精彩^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-2 16:39:09 | 显示全部楼层
只会优先选择一个 except 作为异常处理,哪个错先发生就选哪个。一旦发现错误,try 语句就不再往下执行下面代码,直接寻找对应的 except 语句。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-2 17:05:53 | 显示全部楼层
谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-5-2 17:06:28 | 显示全部楼层
傻眼貓咪 发表于 2022-5-2 16:39
只会优先选择一个 except 作为异常处理,哪个错先发生就选哪个。一旦发现错误,try 语句就不再往下执行下面 ...

谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-29 01:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表