Python中的异常处理总结

1.异常分类

错误Error:

原因 示例
笔误 像变量名写错,造成的语法错误
逻辑错误 算法写错了,例如原本逻辑是求和,但写成了乘积
函数或者类使用错误 这类也归为逻辑错误

写代码时,错误是可以避免的。

异常Exception

有时候程序写的没有问题,也没有语法错误,但在某些情况下依然出现一些意外,导致程序无法正常执行,就是通常所说的异常。

例如open函数操作一个文件,但该文件不存在,这就是一个异常。

异常不可能全部避免的。

2.健壮的代码

健壮的代码要避免错误,捕获处理各种异常 。

主动抛出异常

  • raise 语句显式抛出异常,

捕获异常

try:
待捕获异常的代码块
except [异常类型]:
异常处理

示例代码

num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))
try:
	res = num1/num2
except ZeroDivisionError as e:
	print("除数不能为0:", e )

3.捕获异常:

(1.try ... except..

num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))
try:
	res = num1/num2
except ZeroDivisionError as e:
	print("除数不能为0:", e )

(2.try..except...finally...

#Python学习交流QQ群:711312441
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))
try:
	res = num1/num2
except ZeroDivisionError as e:
	print("除数不能为0:", e )
finally:
	print("执行完毕")

finally 不管结果如何,最后都会执行

(3.else子句 较少使用

try语句中的else,当try语句没有异常捕获时,执行else语句

try:
    pass
except Exception:
    pass
else:
    pass
finally:
    pass

总结:

try:
    pass
except Exception: #捕获异常处理
    pass
else:  #没有异常发生时执行
    pass
finally: #退出try,最终一定会执行
    pass

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中的异常处理总结 - Python技术站

(0)
上一篇 2023年3月31日
下一篇 2023年3月31日

相关文章

  • python学习:枚举定义和使用

    1.定义 在某些情况下,一个类的对象是有限且固定的,比如季节类,它只有 4 个对象;再比如行星类,目前只有 8 个对象。这种实例有限且固定的类,在 Python 中被称为枚举类。程序有两种方式来定义枚举类: 直接使用 Enum 列出多个枚举值来创建枚举类。 通过继承 Enum 基类来派生枚举类。 2.使用 使用 Enum 列出多个枚举值来创建枚举类 如下程序…

    Python开发 2023年4月2日
    00
  • Python3教程:加密模块-hashlib

    一、哈希 1. 什么是可哈希(hashable) 简要的说,可哈希的数据类型,即不可变的数据结构(字符串str、元组tuple、对象集objects)。 2. 哈希有什么作用 它是一个将大体量数据转化为很小数据的过程,甚至可以仅仅是一个数字,以便我们可以用在固定的时间复杂度下查询它,所以,哈希对高效的算法和数据结构很重要。 3. 什么是不可哈希(unhash…

    Python开发 2023年4月2日
    00
  • Python教程:类的派生

    一、派生 派生:子类中新定义的属性的这个过程叫做派生,并且需要记住子类在使用派生的属性时始终以自己的为准 1 派生方法一(类调用) 指名道姓访问某一个类的函数:该方式与继承无关 class OldboyPeople: “””由于学生和老师都是人,因此人都有姓名、年龄、性别””” school = ‘oldboy’ def __init__(self, nam…

    Python开发 2023年3月31日
    00
  • Python教程:几个常用的内置函数

    匿名函数(lambda表达式) 在Python中,函数可以算的上是“一等公民”了,我们先回顾下函数的优点: 减少代码重复量 模块化代码 但是我们有没有想过,如果我们需要一个函数,比较简短,而且只需要使用一次(无需重复调用),那还需要定义一个有名字的函数么? 答案是否定的,这里我们就可以使用匿名函数来实现这样的功能。 我们先看看求一个数的平方,我们定义个函数怎…

    Python开发 2023年4月2日
    00
  • Python学习:绑定方法与非绑定方法

    一、绑定方法与非绑定方法 类中定义的函数分为两大类:绑定方法和非绑定方法 其中绑定方法又分为绑定到对象的对象方法和绑定到类的类方法。 在类中正常定义的函数默认是绑定到对象的,而为某个函数加上装饰器@classmethod后,该函数就绑定到了类。 我们在之前的章节中已经介绍过对象方法了,本节我们主要介绍类方法。类方法通常用来在__init__的基础上提供额外的…

    Python开发 2023年4月2日
    00
  • Python数据类型间的相互转化及字符编码

    字符间的相互转化: 数字与字符串之间的相互转化 1、数字(整数与浮点数) –> 字符串 :只需要在要转化的数字前加str进行转换就可以 num = 10.5 str_num = str(num) print(str_num) 2、字符串转化为数字 –> 使用 int 或 float 方法进行转化 1 整数字符串转化为数字 (当字符串中只有数字…

    Python开发 2023年4月2日
    00
  • python中的mysql操作教程及实例

    一. 数据库在自动化测试中的应用 存测试数据 有的时候大批量的数据,我们需要存到数据库中,在测试的时候才能用到,测试的时候就从数据库中读取出来。这点是非常重要的! 存测试结果 二. python中的数据库之必备前提条件 1. 安装:pyMysql python2中使用mysqldb,python3中不再支持,换成pyMysql 2. 安装步骤 安装pyMys…

    Python开发 2023年4月2日
    00
  • Python教程:如何创建多线程?

    一、python线程的模块 1.thread和threading模块 thread模块提供了基本的线程和锁的支持 threading提供了更高级别、功能更强的线程管理的功能。 2. Queue模块 Queue模块允许用户创建一个可以用于多个线程之间共享数据的队列数据结构。 3.注意模块的选择 避免使用thread模块 因为更高级别的threading模块更为…

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部