异常、模块和包
1.异常
1.1什么是异常
异常:通俗点理解就是运行错误,当检查到错误之后,就是去就没有办法执行,此时就会出现一些错误(语法错误),至于程序的逻辑错误是需要调试才能查找的,解释器只能检查语法错误
示例:
num1=50
print(num2)#NameError: name 'num2' is not defined此时解释器提示num2未定义
1.2异常的写法
1.2.1异常的语法
示例:
num1=50
try:
print(num2)
except:
print('执行错误')
print(num1)
此时程序在执行时:
判断try下的语句是否是正确的,如果可以执行就直接执行,如果此时是错误的那么就会执行except语句,此时程序不会提示错误,可以继续执行下去
1.2.2捕获指定异常
语法:
try:
可能发⽣错误的代码
except 异常类型:
如果捕获到该异常类型执⾏的代码
示例:
#捕获指定异常
num1=50
try:
print(num2)
except NameError:#判断上述的错误是否为name error,如果是执行下面的代码
print('此时的错误是NameError')
print(num1)
运行结果;
注意事项:
1. 如果尝试执⾏的代码的异常类型和要捕获的异常类型不⼀致,则⽆法捕获异常
== 2. ⼀般try下⽅只放⼀⾏尝试执⾏的代码 ==
1.2.3捕获多个指定异常
捕获多个异常时可以把要捕获的异常类型的名字,放到except 后,并使⽤元组的⽅式进⾏书写
示例1:捕获对个异常
try:
print(1/0)
except (NameError,ZeroDivisionError):
print('执行上述语句print(1/0)有错误')
1.2.4捕获异常描述信息
示例1:捕获异常描述信息
try:
print(1/0)
except (NameError,ZeroDivisionError) as ret:
print(ret)#输出结果为:division by zero
1.2.5捕获所有异常
Exception是所有程序异常类的⽗类,随意在使用是用Exceotion接收所有的异常
示例
num1=1
try:
print(num2/0)#此时有两个错误,在捕捉是只捕捉优先的一个
except Exception as ret:
print(ret)#输出结果为:name 'num2' is not defined
1.3异常的else
else表示的是如果没有异常要执⾏的代码
示例:
num1=