Python基础06-异常
零、文章目录
Python基础06-异常
1、异常的基本概念
(1)异常是什么
- 当检测到一个错误时,解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的"异常"。
(2)异常演示
- 例如:除数为0异常(数学中,除法运算除数是不能为0的)。
# 1、除数为0异常(数学中,除法运算除数是不能为0的)
print(10/0)
2、异常的捕获方法
(1)捕获常规异常
基本语法:
try:
可能发生错误的代码
except:
如果出现异常执行的代码
'''
在Python中,我们可以通过try...except捕获异常
try:
可能出现异常的代码
except:
如果try语句中的代码出现了异常,则立即执行except缩进代码
优势:提高程序的健壮性
'''
num = int(input('请输入要进行除法运算的数字:'))
try:
result = 10 / num
print(result)
except:
print('已经捕获到异常,执行B方案!')
(2)捕获异常并输出错误信息
- 无论我们在except后面定义多少个异常类型,实际应用中,也可能会出现无法捕获的未知异常。这个时候,我们考虑使用Exception异常类型捕获可能遇到的所有未知异常:
'''
在实际工作中,不仅需要对异常进行捕获,还需要把异常信息写入到日志文件(具体是什么错误找到)
try:
可能出现异常的代码
except Exception as e:
print(e) # 代表出错的异常信息 => 实际工作以后,写入日志文件中
'''
try:
f = open('python.txt', 'r')
except Exception as e:
print(f'-- 日志: {e} --')
print('找到错误的同时,执行B方案!')
(3)捕获指定异常
- 基本语法:如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常。
try:
print(name)
except NameError:
print('name变量名称未定义错误')
(4)捕获多个异常
try:
print(1/0)
except (NameError, ZeroDivisionError):
print('ZeroDivision错误...')
(5)异常捕获中else语句
'''
try:
可能出现异常的代码
except:
捕获异常
else:
当try语句中的代码没有出现异常,则执行else语句中的代码,反之,则不执行
'''
try:
f = open('python.txt', 'r')
except:
f = open('python.txt', 'w')
else:
content = f.read()
print(content)
(6)异常捕获中的finally语句
'''
其实完整的异常捕获语句:
try:
可能出现异常的代码
except Exception as e:
如果出现异常,则执行的代码
else:
如果try语句中的代码没有出现异常,则执行else中的代码
finally:
特别适合实现一些收尾的工作,因为它是无论是否异常都会执行的代码 => f.close()
'''
try:
f = open('python.txt', 'r')
except:
f = open('python.txt', 'w')
else:
content = f.read()
print(content)
finally:
f.close()