• Python学习笔记(16)-异常


    异常

    程序执行过程中出现导致程序终止的错误叫做异常

    捕获一个异常

    表现形式:

    try:

      可能出现异常的代码

    except 异常的名字:

      遇到异常时的处理方式

    示例:

    1 try:
    2     print(aaaaaa)
    3 except NameError:
    4     print("---已知晓异常---")
    5 print("Hello World"

    运行结果:

    ---已知晓异常---
    Hello World

    说明:

    1、单独执行print(aaaaaa)时异常名字是NameError

    2、不使用异常处理时上面程序会报错并结束,不会输出Hello World,使用异常处理时可正常打印Hello World

    3、except后的异常名字必须与执行代码时产生的真实异常名字一致

    4、如try中的代码没有异常则正常执行try中代码,不执行except中的代码

    捕获多个异常

    try:

      可能出现异常的代码块

    except (异常的名字1,异常的名字2):

      遇到异常时的处理方式

    示例:

    1 try:
    2     print(aaaaaa)
    3     print(3/0)
    4 except (NameError,ZeroDivisionError):
    5     print("---已知晓异常---")
    6 print("Hello World")

    运行结果:

    ---已知晓异常---
    Hello World

    说明:

    1、3/0产生的异常名字为ZeroDivisionError

    2、except后的异常名字必须与执行代码时产生的真实异常名字一致

    捕获所有异常

    try:

      可能出现异常的代码块

    except Exception:

      遇到异常时的处理方式

    示例:

    1 try:
    2     print(aaaaaa)
    3     print(3/0)
    4 except Exception:
    5     print("---已知晓所有异常---")
    6 print("Hello World")

    运行结果:

    ---已知晓所有异常---
    Hello World

    捕获异常时获取异常的描述信息

    产生异常时除了需要处理异常之外有时还需知道产生异常的原因

    表现形式:

    try:

      可能出现异常的代码块

    except Exception as 变量名:

      遇到异常时的处理方式

      打印变量

    示例:

    1 try:
    2     print(aaaaaa)
    3 except Exception as a:
    4     print("---已知晓异常---")
    5     print(a)
    6 print("Hello World")

    运行结果:

    ---已知晓异常---
    name 'aaaaaa' is not defined
    Hello World

    异常处理中使用else

    含义:

    如果没有捕获到异常,则执行else中的代码块

    表现形式:

    try:

      可能出现异常的代码块

    except Exception:

      遇到异常时的处理方式

    else:

      没捕获到异常时执行的代码块

    示例:

    1 try:
    2     print("abcdefg")
    3 except Exception:
    4     print("---已知晓异常---")
    5 else:
    6     print("程序无异常")
    7 print("Hello World")

    运行结果:

    abcdefg
    程序无异常
    Hello World

    异常处理中使用finally

    含义:

    无论是否捕获到异常,最后都需执行finally中的代码块

    表现形式:

    try:

      可能出现异常的代码块

    except Exception:

      遇到异常时的处理方式

    else:

      没捕获到异常时执行的代码块

    finally:

      最后一定会执行的代码块

    示例:

    1 try:
    2     f = open("test.txt","r")
    3 except Exception:
    4     print("---已知晓异常---")
    5 else:
    6     print("程序无异常")
    7 finally:
    8     f.close()
    9 print("Hello World")

    运行结果:

    ---已知晓异常---
    Traceback (most recent call last):
      File "F:/untitled/Python_jichu/异常.py", line 8, in <module>
        f.close()
    NameError: name 'f' is not defined

    说明:

    因为不存在test.txt文件,所以f.close()会报错退出

  • 相关阅读:
    python多线程爬虫:亚马逊价格
    python在linux中输出带颜色的文字的方法
    单线程爬虫VS多线程爬虫的效率对比
    python爬虫:正则表达式
    爬虫-python调用百度API/requests
    Python gevent学习笔记-2
    Python gevent学习笔记
    IO多路复用之select总结
    select、poll、epoll之间的区别总结[整理]
    2020年 IEDA破解码失效,2019 版IDEA无法使用 ,已解决,有效期2100年;原标题:IDEA激活—免费永久激活(lookdiv.com)
  • 原文地址:https://www.cnblogs.com/lidongaistudy/p/9591844.html
Copyright © 2020-2023  润新知