无异常捕获
程序遇到异常会中断
print( xxx )
print("---- 完 -----")
得到结果为:
有异常捕获
程序遇到异常会进入异常处理,并继续执行下面程序
try:
print( xxx )
except NameError as e:
print("出现错误",e)
print("---- 完 -----")
抓住所有异常
try:
print(xx)
except Exception as e:
print("----异常---%s"%e) #输出:----异常---name 'xx' is not defined
捕获多个异常:
方法一:
【except (异常1,异常2) as e:】如果多个异常可以使用一个处理方法时,可使用多异常捕获方法
方法二:
多个异常,使用不同的异常处理,但这样只会进入第一个发生异常处,然后跳出异常捕获
xx=[ ]
try: print( xxx ) #NameError
print(xx[1]) #IndexError except NameError as e:
print("出现错误1",e)
except IndexError as e:
print("出现错误2",e)
except Exception as e:
print("未知错误",e) print("---- 完 -----")
else和finally的用法
try:
print( xxx ) #NameError
except NameError as e:
print("出现错误1",e)
else:
print("一切正常") finally:
print("不管有没有错,我必须执行") print("---- 完 -----")
自定义异常:
class DongExcep(Exception):
def __init__(self,msgxx):
self.msgx=msgxx #实质调用该方法,可以不写也会输出类属性值
def __str__(self):
return "东==>:%s"%(self.msgx) try:
#抛出自定义异常
raise DongExcep("东小东自定义异常") #捕获自定义异常
except DongExcep as e: #
print("出现错误1",e) print("---- 完 -----")
注意:
缩进错误(IndentationError),不可被捕获