• python基础(十):异常和断言


    异常的分类

    异常主要分为四大类,所有异常都是类的形式,均继承了BaseException这个类。其中SystemExit为Python的退出异常,KeyboardInterrupt为键盘的中断异常,GeneratorExit为生成器的退出异常。最后一种也是我们通常会遇到的异常Exception普通异常。普通异常包括我们平时会经常遇到的异常类型,如下图所示。

    异常捕获

    当程序运行过程中发生错误程序就会终止,为了避免这一情况我们需要捕获异常。

    try/except

      捕获由Python或你引起的异常并恢复

    try/finally

      无论异常是否发生,执行清理行为

    在目前的python版本中except和finally可以同时出现,除此之外还有else语句,其后的语句会在程序未发生异常的时候执行,而finally后的语句无论是否发生异常都会执行。

    try:
        print(aaa)#错误代码
    except Exception as e:
        print("错误信息:",e)
    
    >>>错误信息: name 'aaa' is not defined
    try:
        # print(aaa)#错误代码
        print('aaa')#正确代码
    except Exception as e:
        print("错误信息:",e)
    else:
        print("else执行!!")
    
    >>>aaa
       else执行!!
    try:
        print(aaa)#错误代码
        # print('aaa')#正确代码
    except Exception as e:
        print("错误信息:",e)
    finally:
        print("finally执行!!")
    
    >>>错误信息: name 'aaa' is not defined
    finally执行!!
    
    
    try:
        # print(aaa)#错误代码
        print('aaa')#正确代码
    except Exception as e:
        print("错误信息:",e)
    finally:
        print("finally执行!!")
    
    >>>aaa
    finally执行!!

    异常抛出

    raise语句会手动在代码中触发异常。其功能主要用于程序的调试。

    raise NameError
    
    
    >>>
    Traceback (most recent call last):
      File "/home/pyvip/JoePY/home/pyvip/JoePY/test.py", line 58, in <module>
        raise NameError
    NameError

    断言

    assert语句会有条件的在程序代码中触发异常。assert  条件表达式,当条件表达式返回值为True时,不报错。当条件表达式返回值为False时,报错。报错类型为AssertionError。

    assert 1>2
    
    
    >>>
    Traceback (most recent call last):
      File "/home/pyvip/JoePY/home/pyvip/JoePY/test.py", line 59, in <module>
        assert 1>2
    AssertionError
  • 相关阅读:
    MyBatis:2
    MyBatis:1
    synchronized锁普通方法和锁静态方法
    打印倒直角三角形
    迭代器模拟for循环
    Python迭代对象与迭代器
    ffmpeg用法(心得体会还有你见过的用法)
    ffmpeg命令选项解释
    ffmpeg一些filter用法、以及一些功能命令
    FFMPEG 实现 YUV,RGB各种图像原始数据之间的转换(swscale)
  • 原文地址:https://www.cnblogs.com/austinjoe/p/9475615.html
Copyright © 2020-2023  润新知