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

目录
  • 一、错误与异常
    • 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异常及处理的资料请关注我们其它相关文章!

(0)

相关推荐

  • 关于Python中异常(Exception)的汇总

    前言 Exception类是常用的异常类,该类包括StandardError,StopIteration, GeneratorExit, Warning等异常类.python中的异常使用继承结构创建,可以在异常处理程序中捕获基类异常,也可以捕获各种子类异常,python中使用try...except语句捕获异常,异常子句定义在try子句后面. Python中的异常处理 异常处理的语句结构 try: <statements> #运行try语句块,并试图捕获异常 except <name1&

  • Python常见异常分类与处理方法

    Python常见异常类型大概分为以下类: 1.AssertionError:当assert断言条件为假的时候抛出的异常 2.AttributeError:当访问的对象属性不存在的时候抛出的异常 3.IndexError:超出对象索引的范围时抛出的异常 4.KeyError:在字典中查找一个不存在的key抛出的异常 5.NameError:访问一个不存在的变量时抛出的异常 6.OSError:操作系统产生的异常 7.SyntaxError:语法错误时会抛出此异常 8.TypeError:类型错误,

  • Python内置异常类型全面汇总

    内置异常基类 在 Python 中,所有异常必须为一个派生自 BaseException 的类的实例. 通过子类化创建的两个不相关异常类永远是不等效的,既使它们具有相同的名称. 下列异常主要被用作其他异常的基类. BaseException: 所有异常的基类 Exception(重点掌握) 所有内置的非系统退出类异常都派生自此类. 所有用户自定义异常也应当没打算自此类. ArithmeticError 此基类用于派生针对各种算术类错误而引发的内置异常: OverflowError, ZeroDi

  • python中异常报错处理方法汇总

    首先异常是什么,异常白话解释就是不正常,程序里面一般是指程序员输入的格式不规范,或者需求的参数类型不对应,不全等等. Python中异常是指程序中的例外,违例情况.异常机制是指程序出现错误后,程序的处理方法.当出现错误后,程序的执行流程发生改变,程序的控制权转移到异常处理. 打个比方很多公司年终送苹果笔记本,你程序话思维以为是(MAC)电脑笔记本,结果给你个苹果+笔记本...首先类型不对,数量也不对. 先来看几个常见的报错如下: NameError 命名错误 原因是: name 'a' is n

  • Python中常见的异常总结

    一.异常错误 a.语法错误 错误一: if 错误二: def  text:       pass 错误三:  print(sjds b.逻辑错误 #用户输入不完整(比如输入为空)或者输入非法(输入不是数字) num=input('>>:') int(num) #无法计算 rest=1/0 rest2=1+str  二.什么是异常 a.程序运行时发生的错误的信号 b.异常种类: 在Python中不同的的异常可以用不同的类型区标识,不同的类对象标识不同的异常,一个异常标识一个错误 Attribut

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

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

  • Python异常 ValueError的问题

    目录 Python异常 ValueError 规避方法 规避方法:避免使用encoding关键字 Python异常 ValueError ValueError: invalid literal for int() with base 10: '*' 试图将一个与数字无关的类型转化为整数,会抛出该异常. >>> int("99 years ago.") Traceback (most recent call last):   File "<stdin&g

  • Python异常之常见的Bug类型解决方法

    目录 一.粗心导致的语法错误SyntaxError 1.input输入报错 2.循环语句报错 3.赋值报错 二.知识不熟练导致的错误Bug 1.索引越界问题 IndexError 2.append()函数的使用报错 三.思路不清晰导致的问题解决方案 1.使用print()函数 2.使用"#"暂时注销部分代码 四.被动掉坑 一.粗心导致的语法错误SyntaxError 1.input输入报错 age=input('请输入你的年龄:') if age>=18:     print(&

  • Python使用sys.exc_info()方法获取异常信息

    在实际调试程序的过程中,有时只获得异常的类型是远远不够的,还需要借助更详细的异常信息才能解决问题. 捕获异常时,有 2 种方式可获得更多的异常信息,分别是: 使用 sys 模块中的 exc_info 方法: 使用 traceback 模块中的相关函数. 本节首先介绍如何使用 sys 模块中的 exc_info() 方法获得更多的异常信息. 有关 sys 模块更详细的介绍,可阅读<Python sys模块>. 模块 sys 中,有两个方法可以返回异常的全部信息,分别是 exc_info() 和

  • python 自定义异常和异常捕捉的方法

    异常捕捉: try: XXXXX1 raise Exception("xxxxx2") except (Exception1,Exception2,--): xxxx3 else: xxxxx4 finally: xxxxxxx5 1.raise 语句可以自定义报错信息,如上. 2. raise后的语句是不会被执行了,因为已经抛出异常,控制流将会跳到异常捕捉模块. 3. except 语句可以一个except后带多个异常,也可以用多个语句捕捉多个异常,分别做不同处理. 4. excep

  • Python异常类型以及处理方法汇总

    前言 调试Python程序时,经常会报出一些异常,异常的原因一方面可能是写程序时由于疏忽或者考虑不全造成了错误,这时就需要根据异常Traceback到出错点,进行分析改正:另一方面,有些异常是不可避免的,但我们可以对异常进行捕获处理,防止程序终止. 1 异常类型 1.1 Python内置异常 Python的异常处理能力是很强大的,它有很多内置异常,可向用户准确反馈出错信息.在Python中,异常也是对象,可对它进行操作.BaseException是所有内置异常的基类,但用户定义的类并不直接继承B

  • Python 5种常见字符串去除空格操作的方法

    目录 1:strip()方法 2:lstrip()方法 3:rstrip()方法 4:replace()方法 5: join()方法+split()方法 1:strip()方法 去除字符串开头或者结尾的空格 >>> a = " a b c " >>> a.strip() 'a b c' 2:lstrip()方法 去除字符串开头的空格 >>> a = " a b c " >>> a.lstrip(

  • Python如何处理异常报错方法(建议收藏!)

    目录 写在前面 什么是异常? 如何处理异常? try 与 except 用法 例子 python标准异常 写在最后 写在前面 今天Python笔记的内容是: 异常处理 一旦Python脚本发生异常,程序需捕获并处理异常. 异常处理使得程序能够在处理异常后继续正常执行,不至于崩溃或终止执行. 什么是异常? 当Python无法正常处理程序时就会发生一个异常.异常是Python对象,表示一个错误. 当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行 举个例子: >>> a =

  • Python异常信息的不同展现方法总结

    目录 简介 Exception Hooks 自定义Exception Hooks 第三方库中的Exception Hooks 结论 简介 在日常开发中,我们的大部分时间都会花在阅读traceback模块信息以及调试代码上.本文我们将改进traceback模块,让其中的提示信息更加简洁准确. 基于这一目的,我们将会自定义Exception Hooks(异常处理钩子),用来去除traceback中的冗余信息,只留下解决报错所需的内容.此外,我还会介绍一些好用的第三方库,你可以直接使用其中的Excep

  • python常见读取语音的3种方法速度对比

    python 读取语音文件时,常用的无非以下三种方式,但是在我们数据量变的很大是,不同的读取方式之间的性能差异就会被进一步放大,于是本文着重对比了librosa.soundfile.wavfile三种方式的在重复读取一万次某个文件所耗时间的差异,为确保实验结果的可比性,每种方式读取出的语音序列值均一致.具体数值,在下方程序结果中已经标示. # -*- coding: utf-8 -*- """ # @Time : 2022/12/29 17:27 # @Author : Wa

随机推荐