异常处理:
1,是由语法上的错误引发的异常 (程序执行前就改正)
2,是逻辑上的错误引发的异常
预防:对于逻辑上的错误,尽量用if来预防异常
无法预防:对于的逻辑上无法预知的错误,应该用try。。。except处理
try。。。except 语法:
try: 被检测的代码块 except 异常name as e:
print(e)
except 异常name as e:
print(e)
except 异常name as e:
print(e)
except exception as e: #万能异常
pass
else:
没有异常的时候触发
finally:
有没有异常都触发
class myexceprion(baseexceprion): #自定义异常
pass
raise type(‘异常值’) #主动触发异常
assert 1==2 ##断言不通过,就抛出异常
#保证程序走到某一个阶段的时候,xx必须等于xx,程序才能往下走
#否则,抛出异常
万能异常使用:同一种错误。
二,模块与包
模块分三类:内置模块,第三方模块,自定义模块
包是从文件夹/目录,级别组织模块。
模块的使用 2种 方法:
1,improt
2,from。。。import
只要导入都会干3件事情:
1,执行文件。
2,创建名称空间。
3,创建模块名,指向该文件创建的名称空间。
模块名。名字
导入模块,使用注意事项:
import spam
spam.name 使用的时候,必须带spam
from spam import name
name 直接用最后的name名字
导入包,使用注意事项:
1,点的左侧,必须是一个包
2, import glance.api.policy
glance.api.policy.name 使用的时候,要带上前面的,加上点policy
3,from glance.api.policy import name
name 使用的时候,直接用name
from ....import... (import后面是name,不能带点)
特别注意:
1,import导入内置或第三方模块,但是绝对要避免使用import来导入自定义包的子模块。
2,应当使用from...import...的绝对或相对导入,且包的相对导入只能用from的形式。
尽量用相对导入。(绝对导入,如果改名,就会出现问题)
3,把包当作模块去看sys