小甲鱼的铁粉 发表于 2020-6-20 13:44:15

python异常处理的那节课的课后题,里面的else时干嘛的

try语句按照如下方式工作:

首先,执行try子句(在关键字try和关键字except之间的语句)
        如果没有异常发生,忽略except子句,try子句执行后结束。
        如果在执行try子句的过程中发生了异常,那么try子句余下的部分将被忽略。如果异常的类型和except之后的名称相符,那么对应
        except子句将被执行。最后执行try语句之后的代码。
        如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层的try中。
实例1(未发生异常)

try:

    f1 = open("testfile.txt", "w")

    f1.write("这是一个测试文件,用于测试异常!!")

except IOError:

    print("Error: 没有找到文件或读取文件失败")

else:

    print("内容写入文件成功")

    f1.close()



====================== RESTART: D:/python/file_error.py ======================

内容写入文件成功



===查看testfile.txt文件内容:===

这是一个测试文件,用于测试异常!!


实例2(发生异常)


===============当然如果你刚才运行了前面的一个程序,你需要把testfile.txt文件给删除=====

try:

    f1 = open("testfile.txt", "r")

    f1.read()

except IOError:

    print("Error: 没有找到文件或读取文件失败")

else:

    print("内容写入文件成功")

    f1.close()

====================== RESTART: D:/python/file_error.py ======================

Error: 没有找到文件或读取文件失败


两个代码里面都有else,这个else你干嘛用的{:10_312:}

小甲鱼的铁粉 发表于 2020-6-20 13:45:44

else:

    print("内容写入文件成功")

    f1.close()
就是这个else,是干嘛用的,它是不是等价于finally的?

qiuyouzhi 发表于 2020-6-20 13:47:47

小甲鱼的铁粉 发表于 2020-6-20 13:45
就是这个else,是干嘛用的,它是不是等价于finally的?

不是,是没报错执行else里的内容
finally是无论报不报错都执行

小甲鱼的铁粉 发表于 2020-6-20 13:50:32

qiuyouzhi 发表于 2020-6-20 13:47
不是,是没报错执行else里的内容
finally是无论报不报错都执行

你和t6你俩头像用的是同一只狗吗,这么想{:10_257:}

qiuyouzhi 发表于 2020-6-20 14:09:11

小甲鱼的铁粉 发表于 2020-6-20 13:50
你和t6你俩头像用的是同一只狗吗,这么想

这个是我从QQ盗来的一个GIF{:10_256:}

小甲鱼的铁粉 发表于 2020-6-20 14:18:52

qiuyouzhi 发表于 2020-6-20 14:09
这个是我从QQ盗来的一个GIF

{:10_249:}
页: [1]
查看完整版本: python异常处理的那节课的课后题,里面的else时干嘛的