python基础----异常处理
发布于 2021-04-17 02:21 ,所属分类:知识学习综合资讯
点击上方“Python入门到进阶”,选择“星标”gongzhong号
重磅干货,第一时间送达
num1 = 7
num2 = 0
print(num1 / num2)
不同的异常被抛出是因为不同的原因:
常见异常:
ImportError:导入失败;
IndexError:列表索引超出范围;
NameError:使用了未知变量;
SyntaxError:无法正确解析代码;
TypeError:对不适当类型的值调用函数;
ValueError:在正确类型的值上调用了一个函数,但是值不正确。
Tips:Python还有其他一些内置的异常,例如ZeroDivisionError和OSError。第三方库也经常定义自己的异常。
try:
num1 = 7
num2 = 0
print(num1 / num2)
print("Done calculation")
except ZeroDivisionError:
print("An error occurred")
print("duetizerodivision")
也可以使用括号将多个异常放入单个except块中,以使except块处理所有异常。
try:
variable = 10
print(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 ValueError
print(2)
Tips : 你需要指定引发的异常的类型!!!
可以使用提供有关异常详细信息的参数来引发异常。
For example:
name="123"
raise NameError("Invalid name!")
在except块中,raise语句可以不带任何参数来重新引发发生的任何异常。
For example:
try:
num = 5 / 0
except:
print("An error occurred")
raise
Tips:运行一下代码看看它是如何工作的吧!
断言(Assertion)
断言是一种健全性检查,您可以在测试完程序后打开或者关闭它。测试表达式,如果结果为假,则引发异常。断言是通过assert语句来执行的。
For example:
print(1)
assert 2 + 2 == 4
print(2)
assert 1 + 1 == 3
print(3)
Tips : 程序员通常将断言放在函数的开头以检查有效输入,而在函数调用之后则进行断言以检查有效输出。
写在最后
本节给大家介绍了Python语法中的重点内容 ------ 异常处理。在前期学习过程中用到的不多,但是不管在什么语言中都是适用的,所以提前掌握一遍没什么坏处。勤能补拙是良训,希望大家还是动手做一做,有问题可以私信我,欢迎交流和提出您的宝贵意见。
你要偷偷学Python,然后惊艳所有人。
-END-
感谢大家的关注
你关心的,都在这里
相关资源