7.1 异常
在 Python 中所有的异常都是继承自 BaseException 直接分为四大类:
SystemExit:Python 退出异常
KeyboardInterrupt: 键盘打断 (Ctrl+C)
GeneratorExit: 生成器退出 (下次课再讲)
Exception: 普通异常 (只会使用这部分的异常)
7.2 处理异常
1. 基本的 try ... except ...
try:
首先写一个 try , 然后把所有可能出错的代码, 放到里面去.
- print-"----------") #第一条正确的
- print(a) #第 2 条错误的
- print(--------3-------") #第三条正确的
- except :
- pass #下面是写捕获到异常的处理方案.
代码中会出现的异常都是 Exception 的子类, 因此在 except 中只需要在最后加上 Exception 即可
2. 更加丰富的结构:
- try:
- ?
- print-"---------")print(a)
- ?
- print---------------")
- ?
- except Exception as result: #在这里用个 as 将捕获到的异常用个变量保存起来.
- ?
- print('捕获到了异常, 会执行我下面的代码对异常进行处理')print(result) # 打印 result, 把捕获异常信息返回出去.
- ?
- else:
- ?
- print("没有捕获到异常, 执行我")finally:
- ?
- print("不管有没有异常, 我都会执行")
3. 注意事项:
1. try 下面放可能出错的代码
2. except try 下面的代码出错后, 会执行 except 下面的代码
?
3. else try 下面代码没有错误, 执行 else 下面的代码
?
4. finally 不管 try 下面的代码有没有出错, 始终都会执行
7.3 自定义异常类型 raise:
- class MyError(Exception): #自定义的异常必须继承 Exception
- pass
- raise MyError('异常信息') # 主动抛出 自定义异常
格式: raise 异常类型
注意: raise 是主动抛出后面写的异常类型
7.4 断言
断言语句是将调试断言插入程序的一种便捷方式
- assert 1 == 1
- assert 1 == 2,'报错了'
assert 的语法规则是:
表达式返回 True 不报错
?
表达式返回 False 报错 报 AssertionError
来源: http://www.bubuko.com/infodetail-3240829.html