except
异常(高级) Exception
异常回顾:
try-except 语句 捕获(接收)异常通知,把异常流程变为正常流程
try-finally 语句 执行必须要执行的语句.
raise 语句 发送异常通知,同时进入异常流程
assert 语句 发送AssertionError异常
with 语句
with语句
语法:
with 表达式1 [as 变量1], 表达式2 [as 变量2], …:
语句块
作用:
使用于对资源进行访问的场合,确保使用过程中不管是否发生异常都会
try:
with open("0.txt", 'a') as file:
line = file.readlines()
except OSError:
print("文件打开失败")
except ValueError:
print("文件读写失败")
raise
引发NameError错误:
try:
s = None
if s is None:
print "s 是空对象"
raise NameError #如果引发NameError异常,后面的代码将不能执行
print len(s) #这句不会执行,但是后面的except还是会走到
except TypeError:
print "空对象没有长度"
s = None
if s is None:
raise NameError
print 'is here?' #如果不使用try......except这种形式,那么直接抛出异常,不会执行到这里
触发Exception错误:
def mye( level ):
if level < 1:
raise Exception("Invalid level!")
# 触发异常后,后面的代码就不会再执行
try:
mye(0) # 触发异常
except Exception as err:
print(1,err)
else:
print(2)