-
try:
把不确定会不会报错的代码,放在try里面
-
except
捕获到异常,进行处理,放在except下面
try:
# 把不确定会不会报错的代码,方法try里面
with open('ttt.txt','r') as f:
f.read()
except:
# 捕获到了异常
print('打开的文件不存在')
with open('ttt.txt','w') as f:
pass
-
捕获指定异常类型
try:
print(a+'abc')
# except 后面可以写异常类型(指定只捕获这个类型的错误)
except TypeError as e: # 通过as可以接收捕获到的异常提示信息
print('捕获到了类型异常')
print(e) # 打印异常信息
except NameError:
print('捕获变量没有定义的错误')
-
使用多个except来捕获多种异常类型
通过一个except指定捕获多个异常类型
try:
print(a+'abc')
# except 后面可以写异常类型(指定只捕获这个类型的错误)
except (TypeError,NameError,KeyError) as e:
print('捕获到了类型异常')
print(e)
-
捕获所有类型的异常(语法错误除外)
try:
print(a+'abc')
except Exception as e:
print('捕获到了类型异常')
print(e)
-
else:
try里面没有捕获到(发生)异常,那么就会执行else里面的代码
-
finally:
try里面的代码不管是是否发生异常都会执行
try:
aa = 10000
print(a+'abc')
except Exception as e:
print('捕获到了类型异常')
print(e)
else:
# try里面没有捕获到(发生)异常,那么就会执行else里面的代码
print('没有捕获带异常')
finally:
# try里面的代码不管是是否发生异常都会执行
print('finally----------------')
-
raise : 主动抛出异常
语法格式:raise 异常类型(异常信息)
-
assert:断言
assert后面跟一个条件语句,如果条件不成立就回触发断言异常(AssertError)
assert断言语句的预发格式:
assert 表达式-
debug调试
1、F7:往下走一步(遇到函数调用,会进入到函数内部)
2、F8:往下走一步(遇到函数调用,不会进入到函数内部,直接得出函数调用的结果)
注意:断点一定要打在能够执行到的那行代码上,代码执行不到断点白打