zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    常见限流算法
    spring aop 事物
    Java序列化和反序列化为什么要实现Serializable接口
    java类在何时被加载?
    mysql 排序 是怎么工作的?
    程序员转正述职报告
    .NET中使用Channel<T>
    .NET-服务承载系统(Hosting)(支持Cron表达式)
    JObject拼接Json字符串
    NET5 使用FTP发布
  • 原文地址:https://www.cnblogs.com/austinjoe/p/9475615.html
Copyright © 2011-2022 走看看