• Python语法-异常捕获


    Python异常捕获和java里的大同小异,也都是以try开始,但是python里的捕获用except,java里用的是catch,但是功能都一样都是出现异常进行捕获,那咱们就来看一下代码使用

    首先看一下遇见异常不捕获异常的情况

    1. print("test-------------------------1")
    2. f= open("123.txt","r") # 发生运行异常不处理后续代码
    3. print("test-------------------------2")

    由于没有123.txt的文件,所以也无法读取到,程序会报找不到错误异常,后续的代码也不会执行

    捕获异常,由于open是关于文件的操作,所以捕获IO异常

    1. # 捕获异常
    2. try:
    3. print("test-------------------------1")
    4. f= open("123.txt","r")
    5. print("test-------------------------2")
    6. except IOError: #文件没找到就是Io异常(输入输出异常)
    7. pass

     当出现错误时则进入捕获块,也就是except,我们又编写了pass就是过,所以没有打印异常则会出现如下图所示情况

     

     打印异常,此处没有定义变量名称,所以是NameError

    1. # 捕获相同的异常
    2. try:
    3. print(num)
    4. except NameError:
    5. print("发生错误了")

    你大概也能猜出会是如下图片错误。

     

     可捕获多个异常,并打印异常结果:多个异常用括号扩起,并用逗号分隔

    1. try:
    2. print("test-------------------------1")
    3. f = open("123.txt", "r") # 捕捉到这里有异常就不往下走了
    4. print("test-------------------------2")
    5. print(num)
    6. except (NameError,IOError) as result: # 多个异常用逗号分割,并加()
    7. # as result 则是真正的异常结果
    8. print("发生错误了")
    9. print(result)

     打印捕获的异常结果

     所有的异常都会被捕获,而不只是捕获一种,只要出现需要捕获的异常,都要捕获则使用Exception

    1. try:
    2. print("test-------------------------1")
    3. f = open("file.txt", "r") # 捕捉到这里有异常就不往下走了
    4. print("test-------------------------2")
    5. print(num)
    6. except Exception as result: # Exception所有的异常错误
    7. # as result 则是真正的异常结果
    8. print("发生错误了")
    9. print(result)

    会抛出一样的异常。

     嵌套异常使用,像如下,没打开文件就出现异常则直接捕获打印,如果打开文件以后进行读取异常或其他异常,则进行捕获也要走最终关闭文件。

    1. # try catch 嵌套
    2. try:
    3. f=open("file.txt","r")
    4. try:
    5. while True:
    6. content=f.readline()
    7. if len(content)==0:
    8. break
    9. time.sleep(2)
    10. print(content)
    11. finally:
    12. f.close()
    13. print("文件关闭")
    14. except Exception as result:
    15. print(result)

    打开文件报错情况

     当文件打开以后执行后续代码出现问题,则文件关闭然后抛出异常,嵌套异常可针对不同模块进行有针对的抛出异常处理连接问题。

     

     课堂练习:

    1.通过python新建文件gushi.txt,并写入一首古诗,考虑异常!

    2.读取文件gushi.txt,将内容复制到copy.txt中,并在控制台输出复制完成,需要考虑异常!

    ps:python的文件操作上节就是哦!

     

  • 相关阅读:
    计算机毕业设计选题推荐-旅游网站-Java项目实战
    mac m1 docker安装nacos
    Linux 远程联机服务(二)- Rsh服务器
    IDEA 部署服务到 Docker 容器
    C++ 20语言特性
    应该继续学习编程,还是学数控?
    智慧用电解决方案-最新全套文件
    一次调整prompt的过程
    如何利用pynlpir进行中文分词并保留段落信息
    dotnet7 aot编译实战
  • 原文地址:https://blog.csdn.net/dfBeautifulLive/article/details/127599584