Python-程序的异常处理

本文介绍了Python中的异常处理机制,包括异常的定义、常见异常类型、try-except语句的使用,以及异常处理的高级技巧,如多个except语句、配合else和finally的使用。通过这些内容,帮助读者理解和掌握如何在Python程序中优雅地处理错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

异常是什么?

异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。
异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。
举个例子:

num = eval(input("please input a number: "))
print(num**2)

当输入为一个数字时:

>>> 
please input a number: 100
10000

当输入位字符串时:

please input a number: no
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1, in <module>
NameError: name 'no' is not defined
>>> 

此时python发生了异常,解释器返回异常信息,并退出程序。在异常信息中,Traceback为回溯标记,NameError为异常类型,是最重要的部分,:后紧跟着的是异常内容提醒。

常见的异常类型

名称描述
ImportError导入模块/对象失败
NameError未声明/初始化对象 (没有属性)
SyntaxError Python语法错误
IndentationError缩进错误
TabErrorTab 和空格混用
SystemError一般的解释器系统错误
TypeError对类型无效的操作
ValueError传入无效的参数
UnicodeError Unicode相关的错误
FloatingPointError浮点计算错误
OverflowError数值运算超出最大限制
ZeroDivisionError除(或取模)零 (所有数据类型)
EOFError没有内建输入,到达EOF 标记
EnvironmentError操作系统错误的基类
IOError输入/输出操作失败

异常处理: try-expect语句

基本语法格式:

try:
	num = eval(input("please input a number: "))
	print(num**2)
except NameError:
	print("input error!! please input another number! ")

再次输入no得到如下结果:

please input a number: no
input error!! please input another number!

异常的高级用法

1.多个except语句

try:
	<语句块1>
except <异常类型1>:
	<语句块2>
...
except <异常类型n>:
	<语句块n>
except <异常类型n+1>:
	<语句块n+1>

2.配合else和finally保留字使用

try:
	<语句块1>
except <异常类型1>:
	<语句块2>
else:
	<语句块3>
finally:
	<语句块4>

else:当try中语句块1正常执行结束其没有异常时执行,可以看作是对try语句块正常执行后的一种追加处理。
finally:总会执行,可以将语句块1的一些收尾工作放在这里,例如关闭文件等。

异常和错误

异常和错误是两个相似但不同的概念,二者哦度可能引起程序执行错误推出,属于程序没有考虑到的例外情况。然而,绝大多数不可控因素是可以预见的,这种可以预见的例外情况称为“异常”(checked expection),发生后经过妥善处理可以继续执行。
另一些因为逻辑产生的不可与贱的例外情况称为“错误”(unchecked exception),错误发生后程序无法恢复执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值