异常的捕获
在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因。
当try语块内的代码出现异常时,可以用except来索引该异常,代码会自动跳入执行except语块,如果except后还有finally,则会继续执行finally语块,特别注意的是:finally语块无论是否执行except最后都会被执行
当程序中有多个异常时也可以使用多个except语块来执行相关语句
如果try语块内的代码没有异常出现,则可以使用else语块来执行相关代码,并且如果最后有finally语块也会执行finally内的代码
调试:
程序能一次写完并正常运行的概率很小,基本不超过1%。总会有各种各样的bug需要修正。有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值是正确的,哪些变量的值是错误的,因此,需要一整套调试程序的手段来修复bug。
这里引出“断言”的概念:
凡是用print()来辅助查看的地方,都可以用断言(assert)来替代:
assert的意思是,表达式n != 0应该是True,否则,根据程序运行的逻辑,后面的代码肯定会出错。
如果断言失败,assert语句本身就会抛出AssertionError