• 异常处理的使用


    异常的语法:

    try:

      这里放可能出现异常的代码

    except 异常的类型:

      当异常发生时并且与异常类型匹配

      执行except中的代码

    注意:一旦try中代码抛出异常,后面的代码全部不执行

    基本语法:

    print("之前的代码")
    try:
        class Foo:
            pass
        f1 = Foo()
        f1.x
    except AttributeError:
        print("属性不存在")
    print("之后的代码")

    面对代码段中可能有多种异常,单一异常并不能接住异常,所以可以使用多种异常处理的机制。

    print("staring.....")
    try:
        # name
        [][-1]
        pass
    except NameError:
        print("名字找不到!")
    except IndexError:
        print("索引超出范围")
    print("end.......")

    上面的多种异常接受也可写成:

    print("staring.....")
    try:
        # name
        [][-1]
        pass
    except (NameError,IndexError):
        print("名字找不到! 或者  索引超出范围")
    
    print("end.......")

    基于上面两种异常接受方法,虽然可以接受很多异常,但是没有接受全部异常,毕竟异常太多

    同时异常也是个特殊的类型,那么就有万能异常类型Exception或者BaseException  这也是一种基于oop的继承和多态。

    print("staring.....")
    try:
        # {}["aaa"]
        # name
        # [][-1]
        1/0
    except Exception:
        print("可能名字找不到! 可能所以超出范围 可能除数为0")
    print("end.......")

    其他语法

    try:
        # 1/0
        # [][2]
        pass
    except Exception:
        print("抛出异常")
    else:#当代码没有异常抛出,才会执行
        print("代码中没有异常")
    try:
        # 1/0
        # [][2]
        pass
    except Exception:
        print("抛出异常")
    else:#当代码没有异常抛出,才会执行
        print("代码中没有异常")
    finally:
        print("无论是否有异常,都会执行")

    finally:主要用于回收检验异常代码的系统资源

    try:
        f = open(r"D:上海python全栈4期day31异常处理1今日内容","rt",encoding="utf-8")
        f.read()
        # f.write("123")
    except Exception:
        print("发生异常了")
    finally:
        print("关闭文件!")
        f.close()
  • 相关阅读:
    python 查看所有的关键字
    使用yum命令报错File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: SyntaxError: invalid syntax问题
    安装Python3.6.2报错:zipimport.ZipImportError: can't decompress data; zlib not available
    在CentOS-7.0中安装Python3.6.2
    批处理基础
    linux创建线程之pthread_create
    嵌入式 printf函数
    滤波算法
    单片机启动文件
    SUID、SGID详解
  • 原文地址:https://www.cnblogs.com/msj513/p/9889881.html
Copyright © 2020-2023  润新知