目录
1.错误和异常
错误:
语法错误
逻辑错误
异常:
程序运行中,出现意料之外的错误
回溯信息
2.常见异常
#NameError名称错误
# print(abc)
#ZeroDivisionError
# print(1/0)
#IndentationError缩进错误
# print("ab")
#SyntaxError语法错误
#if a>b::
#IndexError下标越界
# a = [1,2,3]
# print(a[3])
#KeyError
# a = {"a":1,"b":2}
# print(a["c"])
# print(a.get("c",0))
#AttributeError属性异常
# import random
# random.xxx(0)
#ValueError
#int("abc")
3.异常处理机制
try..except
好处:异常发生,不终止程序,作特殊处理
except捕获的错误与程序触发的错误不一致,程序就捕获不到,然后抛出异常报错
except可以有多个
有异常发生时:
无异常发生时
嵌套
try和except都可以嵌套
else
#else结果 # 没有异常发生时执行 # try: # print("a") # a = 1/0 # except: # print("error") # else: # print("success")
finally
#finaly # 不管有没有异常,不管异常有没有被捕获都会执行 # try: # print("a") # a = 1/0 # except ValueError: # print("error") # else: # print("success") # finally: #不管怎么样,都会执行 # print("finally") # print("end")
手动触发异常
#手动触发异常 #raise # raise异常类 # raise异常类("说明信息") # raise不接异常类默认为RuntimeError # try: # print("raise errot") # raise IndexError("this is an indexerror") # except RuntimeError as re: # print("raise error",re) # # except IndexError as ie: # print(ie)
4.for循环和异常捕捉的嵌套
#建议使用第二种,因为只执行了一次try except