python基础----异常处理
发布于 2021-04-17 02:21 ,所属分类:知识学习综合资讯

点击上方“Python入门到进阶”,选择“星标”gongzhong号
重磅干货,第一时间送达
num1 = 7num2 = 0print(num1 / num2)

不同的异常被抛出是因为不同的原因:
常见异常:
ImportError:导入失败;
IndexError:列表索引超出范围;
NameError:使用了未知变量;
SyntaxError:无法正确解析代码;
TypeError:对不适当类型的值调用函数;
ValueError:在正确类型的值上调用了一个函数,但是值不正确。
Tips:Python还有其他一些内置的异常,例如ZeroDivisionError和OSError。第三方库也经常定义自己的异常。


try:num1 = 7num2 = 0print(num1 / num2)print("Done calculation")except ZeroDivisionError:print("An error occurred")print("duetizerodivision")
也可以使用括号将多个异常放入单个except块中,以使except块处理所有异常。
try:variable = 10print(variable + "hello")print(variable / 2)except ZeroDivisionError:print("Divided by zero")except (ValueError, TypeError):print("Erroroccurred")
try:word = "Hello"print(word / 0)except:print("An Error occurred")

finally子句
为了确保无论发生什么错误都可以运行某些代码,可以使用finally语句。 finally语句位于try / except语句的底部。 finally语句中的代码始终在try中的代码(可能在except块中)执行后运行。
For example:
try:print("Hello")print(1 / 0)except ZeroDivisionError:print("Divided by zero")finally:print("This code will run no matter what")
Tips :如果在前面的块之一中发生未捕获的异常,则finally语句中对的代码甚至会运行。
For example:
try:print(1)print(10 / 0)except ZeroDivisionError:print(unknown_var)finally:print("This is executed last")

抛出异常(Raising Exceptions)
你可以使用raise语句引发异常
For example:
print(1)raise ValueErrorprint(2)
Tips : 你需要指定引发的异常的类型!!!
可以使用提供有关异常详细信息的参数来引发异常。
For example:
name="123"raise NameError("Invalid name!")

在except块中,raise语句可以不带任何参数来重新引发发生的任何异常。
For example:
try:num = 5 / 0except:print("An error occurred")raise
Tips:运行一下代码看看它是如何工作的吧!

断言(Assertion)
断言是一种健全性检查,您可以在测试完程序后打开或者关闭它。测试表达式,如果结果为假,则引发异常。断言是通过assert语句来执行的。
For example:
print(1)assert 2 + 2 == 4print(2)assert 1 + 1 == 3print(3)
Tips : 程序员通常将断言放在函数的开头以检查有效输入,而在函数调用之后则进行断言以检查有效输出。

写在最后
本节给大家介绍了Python语法中的重点内容 ------ 异常处理。在前期学习过程中用到的不多,但是不管在什么语言中都是适用的,所以提前掌握一遍没什么坏处。勤能补拙是良训,希望大家还是动手做一做,有问题可以私信我,欢迎交流和提出您的宝贵意见。
你要偷偷学Python,然后惊艳所有人。


-END-
感谢大家的关注
你关心的,都在这里



![[Python] 中谷教育python中文视频教程(全38集)[简史+基础+函数+变量+正则表达式+爬虫+异常]](https://static.kouhao8.com/sucaidashi/xkbb/ea8bf1e8ef7957e6802322d8ef7b4782.jpg?x-oss-process=image/format,webp/resize,w_88/crop,w_88,h_88,g_nw)












![[Python基础] 小甲鱼零基础入门Python学习视频+全套源码课件 Python视频教程 96讲](https://static.kouhao8.com/sucaidashi/xkbb/d7970e7abb546e6cbe9a4c45b030ed51.jpg?x-oss-process=image/format,webp/resize,w_88/crop,w_88,h_88,g_nw)


![[Python基础] Python Web开发基础入门视频教程 目前最适合Python入门的视频教程 系统学习Python](https://static.kouhao8.com/sucaidashi/xkbb/c5d2bb19e1f9dd55f599179051f766e3.jpg?x-oss-process=image/format,webp/resize,w_88/crop,w_88,h_88,g_nw)

![[Python基础] Python零基础入门学习视频教程全42集](https://static.kouhao8.com/sucaidashi/xkbb/78b9d826631a1cf627f1eff51b54368b.png?x-oss-process=image/format,webp/resize,w_88/crop,w_88,h_88,g_nw)
![[Python] 四周实现爬虫系统 超经典的Python零基础实战化教学 Python零基础实战课程](https://static.kouhao8.com/sucaidashi/xkbb/570b1b552a766843b416fb28f2752248.jpg?x-oss-process=image/format,webp/resize,w_88/crop,w_88,h_88,g_nw)

![[Python基础] 小甲鱼零基础入门Python学习视频+全套源码课件 Python视频教程 96讲](https://static.kouhao8.com/sucaidashi/xkbb/f52ff23b8362685092ffda6c5fe1dbad.png?x-oss-process=image/format,webp/resize,w_88/crop,w_88,h_88,g_nw)

![[Python基础] Python Web开发基础入门视频教程 目前最适合Python入门的视频教程 系统](https://static.kouhao8.com/sucaidashi/xkbb/4f5c0cfab097fd030c7abdf05b57013f.jpg?x-oss-process=image/format,webp/resize,w_88/crop,w_88,h_88,g_nw)
![[Python] 75节Python实战课程 Python基础篇+Python进阶篇+Python项目篇 Python三部曲 Pyth](https://static.kouhao8.com/sucaidashi/xkbb/fd5a6305469616cdc05c47fa0e881d00.jpg?x-oss-process=image/format,webp/resize,w_88/crop,w_88,h_88,g_nw)

![[Python] 某机构Python基础班视频教程 13天课程 195个视频 非常接地气 Python编程基础教程](https://static.kouhao8.com/sucaidashi/xkbb/e842684397e882f374ce618ef1e850dd.png?x-oss-process=image/format,webp/resize,w_88/crop,w_88,h_88,g_nw)
![[Python基础] Python书籍+配套Python视频教程 Python编程实践视频教程+教材 27集](https://static.kouhao8.com/sucaidashi/xkbb/b364dba1a2c78a4c48253ac45aa2d605.jpg?x-oss-process=image/format,webp/resize,w_88/crop,w_88,h_88,g_nw)


相关资源