错误、调试
- 错误处理:
在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因
- try...except...finally...的错误处理机制
代码:
```
# 异常处理
# try ... except ... finally...'''
当我们认为某些代码可能会出错时,就可以用try来运行这段代码,
如果执行出错,则后续代码不会继续执行,而是直接跳转至错误处理代码,即except语句块,
执行完except后,如果有finally语句块,则执行finally语句块,至此,执行完毕。
'''
print(10/0)
except ZeroDivisionError: # try语句块报错,执行except语句块,如果try语句块不报错则不执行except语句块
print('except 语句执行了!')
finally: # 不管except是否执行最后都会执行finally语句块,也可以没有finally语句
print('finally 语句执行了!')
print('测试完成!')
```- 运行结果:
- 记录错误:Python内置的logging模块可以非常容易地记录错误信息
代码:
```
# 内置函数logging 记录错误信息# 同样是出错,但程序打印完错误信息后会继续执行,并正常退出:
def man():
import logging
def do_ZeroError(vaule):
return 10 / vaule
try:
do_ZeroError(0)
except Exception:
logging.exception(Exception)
man()
print('End')
```- 运行结果:
- 抛出错误:
raise
代码:
```
# 抛出错误 raise# 自定义一个错误,需要继承错误类
print(do_Return(0))
class TestError(ValueError):
pass
def do_Return(i):
if i == 0:
raise TestError('出错了!')
return 10 / i
```
- try...except...finally...的错误处理机制
- 调试:检查程序是否正确运行的手段
- 断言:
assert
的意思是,表达式n != 0应该是True,否则,根据程序运行的逻辑,后面的代码肯定会出错。 - 实例:
- logging:
- 实例:
- 断言: