常见的Python异常及处理方法总结

编辑: admin 分类: python 发布时间: 2021-12-03 来源:互联网
目录
  • 一、错误与异常
    • 1.什么是错误
    • 2.什么是异常
    • 3.回溯信息
  • 二、常见异常
    • 常见异常类
  • 三.异常处理
    • 1.异常处理
    • 2.简单的异常处理格式
    • 3.执行顺序
    • 4.except分支可以有多个
    • 5.执行顺序
    • 6.else子句:没有发生异常时执行
    • 7.finally子句:不管异常有没有发生都执行
    • 8.异常嵌套
    • 9.异常处理注意事项与建议
    • 10.在函数中,需要注意在try/except/finally使用return
    • 11.关于性能
  • 四.课后小练习
    • 总结

      一、错误与异常

      1.什么是错误

      (1)语法错误(大小写拼写错误、括号不匹配等…)=> 不能正常执行
      (2)逻辑错误(程序运行正常,只是最后结果不符合预期)

      2.什么是异常

      程序运行过程中,出现的意料之外的错误

      • 如:打开的文件不存在、被除数为0、操作的数据类型不对、存储错误,互联网请求错误…

      3.回溯信息

      当程序运行时,发生了未处理的异常,Python就将终止执行程序,并以堆栈回溯(Traceback,也 称向后追踪)的形式显示异常发生的上下文。

      回溯信息告诉我们应该去哪里寻找问题的根源,对解决问题非常有帮助。

      在这里插入图片描述

      二、常见异常

      常见异常类

      在这里插入图片描述

      三.异常处理

      1.异常处理

      在代码被解释执行的过程中可能会抛出异常。
      那么也就是说,可能会发生,可能不会发生。对于这么不可预测的异常状态如何处理?
      1:即使程序出错,也不想让程序终止
      2:如果出错了,需要特殊处理
      异常处理机制 try…except…

      2.简单的异常处理格式

      在这里插入图片描述

      3.执行顺序

      正常执行: try -> 执行代码 -> 结束
      遇到异常: try -> 遇到异常 -> 跳到excep -> 结束

      4.except分支可以有多个

      在这里插入图片描述

      5.执行顺序

      执行匹配到第一个except则退出
      如果父类异常在最前面,会吞噬所有子类异常(建议:先except子类,再except父类)
      如果except捕获的错误与触发的错误不一致,程序会捕获不到

      6.else子句:没有发生异常时执行

      在这里插入图片描述

      7.finally子句:不管异常有没有发生都执行

      在这里插入图片描述

      8.异常嵌套

      在这里插入图片描述

      9.异常处理注意事项与建议

      • 只执行最先匹配的一个except
      • 如果父类异常在最前面,会吞噬所有子类异常
      •  多except注意:
      • 只会匹配一个except
      • 要先写子类异常再写父类异常
      • 如果except捕获的错误与触发的错误不一致,程序会捕获不到

      建议:

      (1)不建议使用异常来代替常规的检查,如if…else判断
      (2)避免过多依赖于异常处理机制
      (3)在必要的时候,可以手动引发异常(raise)=> 函数或方法

      10.在函数中,需要注意在try/except/finally使用return

      在finally中使用return,异常无法回溯
      在函数中的try/except语句使用return后,仍然会执行finally中的内容
      finally => 正常或异常都执行
      return => 直接退出函数,返回值给主程序

      11.关于性能

      在这里插入图片描述

      在这里插入图片描述

      四.课后小练习

      局域网存活IP检测
      • 预备知识:python执行系统命令模块(subprocess)、IP地址处理模块(IPy)
      • 输入内容:要检查的网段、子网掩码 (输入:192.168.0.0/24)
      • 输出示例: 192.168.0.1已被使用
      • 将输出结果放到文件
      • 将可能存在异常的地方需要做相应处理

      总结

      1.很多人在写代码时会出现很多的问题,这是正常的现象,不出错才有问题。所以说,作为一名程序猿,要有一定的排错和解决问题的能力,这是一个慢慢提升技术的过程。。。

      2.打败你的不是写代码,而是千奇百怪的异常。

      以上就是常见的Python异常及处理方法总结的详细内容,更多关于Python异常及处理的资料请关注hwidc其它相关文章!

      【本文由:http://www.yidunidc.com/mgzq.html复制请保留原URL】