zoukankan      html  css  js  c++  java
  • 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
    当你试图去用自己的言语去讲清一些事物时,你会明白对此事物的理解是融会贯通还是一知半解
  • 相关阅读:
    Android系统源代码下载
    Windows Embedded Compact 7初体验
    windowsmobile 开发环境
    Windows X64汇编入门(1)
    汇编语言的Hello World
    如何构建Win32汇编的编程环境(ONEPROBLEM个人推荐)
    音频视频解决方案:GStreamer/ffmpeg/ffdshow/directshow/vfw
    汇编开发环境
    DirectX
    关于DirectShow SDK 和Windows SDK,及DirectX SDK
  • 原文地址:https://www.cnblogs.com/1211-1010/p/11585964.html
Copyright © 2011-2022 走看看