Python----异常

2023-12-13 19:48:19

1、什么是异常

当检测到一个错误时,解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的"异常"。

2、异常演示


# 运算符
# print(10/0)

# 文件异常
f = open('python.txt', 'r')
content = f.readlines()
print(content)


3、异常捕获

基本语法:


try:
? ? 可能发生错误的代码
except(捕获):
? ? 如果出现异常执行的代码


try...except主要用于捕获代码运行时异常

案例:


try:
? ? f = open('python.txt', 'r')
? ? content = f.readline()
? ? print(content, end='')
except:
? ? f = open('python.txt', 'w', encoding='utf-8')
? ? f.write('发生异常,执行except语句中的代码')

f.close()


4、捕获指定异常

在以上案例代码中,except相当于捕获了所有异常,无论遇到什么错误都会自动执行except中封装的代码。但是有些情况下,我们向针对性的捕获异常,并执行相应的代码。

基本语法:


try:
? ? 可能遇到异常的代码
except 异常类型:
? ? 捕获到对应的错误以后,执行的代码


① 如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常。

② 一般try下方只放一行尝试执行的代码。

案例:捕获FileNotFoundError异常


try:
? ? f = open('python.txt', 'r')
except FileNotFoundError as e:
? ? print(e)


5、同时捕获多个异常


try:
? ? print(name)
? ? # print(10/0)
except (NameError, ZeroDivisionError) as e:
? ? print(e)


6、捕获所有未知异常

无论我们在except后面定义多少个异常类型,实际应用中,也可能会出现无法捕获的未知异常。这个时候,我们考虑使用Exception异常类型捕获可能遇到的所有未知异常:


try:
? ? 可能遇到的错误代码
except Exception as e:
? ? print(e)


案例:打印一个未定义变量,使用Exception异常类进行捕获


try:
? ? print(name)
except Exception as e:
? ? print(e)


7、异常捕获中else语句

else语句:表示的是如果没有异常要执行的代码。


try:
? ? print(1)
except Exception as e:
? ? print(e)
else:
? ? print('哈哈,真开森,没有遇到任何异常')


案例:


try:
? ? f = open('python.txt', 'r')
except Exception as e:
? ? print(e)
else:
? ? content = f.readlines()
? ? print(content, end='')
? ? f.close()


8、异常捕获中的finally语句

finally表示的是无论是否异常都要执行的代码,例如关闭文件、关闭数据库连接。


try:
? ? f = open('python.txt', 'r')
except:
? ? f = open('python.txt', 'w')
else:
? ? print('哈哈,真开森,没有遇到任何异常')
finally:
? ? print('关闭文件')
? ? f.close()


文章来源:https://blog.csdn.net/qq_42755734/article/details/134894091
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。