try:
print(enume)
print(3 / 0)
except ZeroDivisionError as e:
print("除数为零!")
except NameError as e:
print("名称错了!")
#使用except而不使用任何错误类型
try:
print(" ",de)
except:
print("Error!")
#使用except显示多种异常
try:
pass
except(NameError,ZeroDivisionError):
print("出现了NameError或ZeroDivisionError"
'''
特殊
#1、错误其实是class(类),所有的错误都继承自BaseException,所以在捕获
#2、跨越多层调用
#需求:当程序遇到问题时不让程序结束,而越过错误继续向下执行
'''
'''
try……except……else
格式:
try:
语句t
except 错误码 as e:
语句1
except 错误码 as e:
语句2
except 错误码 as e:
语句3
...
except 错误码 as e:
语句n
else:
语句e
注意:else可有可无
作用:检测try语句块中的错误,从而让except语句捕获错误信息并处理
逻辑:当程序执行到try-except-else语句时
1、当try【语句t】执行出现错误,会匹配第一个错误码,如果匹配上就执行第一个语句
2、当try【语句t】执行出现错误,没有匹配到任何的错误码,错误将会被提交到上一层的
try语句,或者到程序的最上层
3、当try【语句t】执行没有出现错误,执行else下的【语句e】(有else的情况下)
'''
def func1(num):
print(1 / num)
def func2(num):
func1(num)
def main():
func2(0)
try:
main()
except ZeroDivisionError as e:
print("QQQQQ")
'''
try……except……else
格式:
try:
语句t
except 错误码 as e:
语句1
except 错误码 as e:
语句2
except 错误码 as e:
语句3
...
except 错误码 as e:
语句n
finally:
语句f
注意:else可有可无
作用:语句t无论是否有错误都将执行最后的语句f
'''
try:
print(1/1)
finally:
print("这是必须执行的语句!")
print("sda")
try:
print(1/0)
finally:
print("这是必须执行的语句!")
print("sda")