• Python3之异常处理


    写自动化脚本时经常会用到异常处理,下面将python中的异常处理做一整理:

    注意:以下所有事列中的111.txt文件不存在,所以会引起异常

    用法一:try...except...else..类型

    1.没有异常时运行:

    a = 3
    try:
        print(a)
    except BaseException as msg:   #用msg变量来接受信息,并将其打印。其中BaseException为所有异常的基类,所有异常都继承与它
        print(msg)
    else:
        print("没有异常时执行")

    运行结果:

    3
    没有异常时执行

    2.有异常时运行:

    a = 3
    b = 4
    try:
        print(a)
        open("111.txt",'r')       #使用open以只读的方式打开不存在的文件111.txt
        print(b)
    except BaseException as msg:  #用msg变量来接受信息并将其打印
        print(msg)
    else:
        print("没有异常时执行")

    运行结果:

    3
    [Errno 2] No such file or directory: '111.txt'     ##该条错误信息是msg接收到的信息

    上面代码中的print(b)并没有被执行,因为再该行代码的上一步出现异常

    用法二:try...except...finally...类型

    1.没有异常时运行:

    a = 3
    try:
        print(a)
    except BaseException as msg:
        print(msg)
    finally:
        print("不管有没有异常都会被执行")

    运行结果:

    3
    不管有没有异常都会被执行

    2.有异常时运行:

    a = 3
    try:
        print(a)
        open('111.txt','r')
    except BaseException as msg:   
        print(msg)
    finally:
        print("不管有没有异常都会被执行")

    运行结果:

    3
    [Errno 2] No such file or directory: '111.txt'
    不管有没有异常都会被执行

    用法三:抛出异常(raise)

    a = 3
    try:
        print(a)
        open('111.txt','r')
    except:
        raise Exception('111.txt no exsit')  #raise用于异常抛出

    运行结果:

    3
    Traceback (most recent call last):
      File "<stdin>", line 3, in <module>
    FileNotFoundError: [Errno 2] No such file or directory: '111.txt'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "<stdin>", line 5, in <module>           #抛出异常
    Exception: 111.txt no exsit

    自定义异常

    class TimeError(RuntimeError):       #定义一个异常类,该类应该是典型的继承自Exception类,通过直接或间接的方式
        def __init__(self,arg):
            self.arg = arg
    
    
    try:
        raise TimeError("Network timeout")   #自定义异常提示
    except TimeError as e:
        print(e.arg)

    运行结果:

    Network timeout
    当你试图去用自己的言语去讲清一些事物时,你会明白对此事物的理解是融会贯通还是一知半解
  • 相关阅读:
    babel-loader的原理
    js弱类型转换的知识点
    个人说明
    嗯三月的小计划
    bzoj2326 [HNOI2011]数学作业
    bzoj2654 tree
    bzoj1018[SHOI2008]堵塞的交通traffic
    bzoj1937[Shoi2004]Mst 最小生成树
    一般图最大匹配-带花树-带注释模板
    FFT快速傅里叶变换-递归版-带注释模板
  • 原文地址:https://www.cnblogs.com/1211-1010/p/11585964.html
Copyright © 2020-2023  润新知