第十一天 第九章 异常处理及程序调试
# try...except语句:当程序出错时,输出错误信息后,程序会继续执行 ''' try: pass # 可能出现错误的代码 except [exceptionName [as alias]]: # exceptionName:异常名(为空则捕获全部异常)。as alias:为当前异常指定一个别名,可以记录异常的具体内容。 pass # 出现异常处理的代码块,可以提示信息,也可以输出异常内容 # except (ValueError, ZeroDivisionError) as e:同样,它可以捕获多个异常,e为具体异常内容 ''' # try...except...else语句:如果有异常,执行except下的语句,如果没有异常,执行else下的语句 # try...except...finally语句:无论有没有异常,finally下的语句都会执行 # 使用raise语句抛出异常:raise [exceptionName[(reason)]] : reason可以省略,如果省略则不附带任何描述信息 def division(): apple = 10 children = 20 if apple < children: raise ValueError() # 错误类型根据实际情况选择,当然这里也可以随意写错误类型 # raise ValueError('苹果太少,不够分') try: division() except ValueError as e: # 但是这里要跟raise后的错误类型一致 print('dfdf',e) # 程序调试 # 使用自带IDLE调试: # 1 在IDLE主菜单上选择 Debug -> Debugger 打开Debug Control对话框,同时python shell窗口将显示[DEBUG ON]表示处于调试状态 # 2 在python shell中选择 File -> Open 打开要调试的文件,然后添加断点(断点的作用是当程序执行到此处时会暂停中断,可随时恢复执行) # 添加断点:在需要断点的行上右键,选择 Set Breakpoint ,添加断点的行将以黄色底纹标记。 # 删除断点:在需要删除的行上右键,选择 Clear Breakpoint # Go:执行到下一个断点 # Step:进入要执行的函数 # Over:单步执行 # Out:跳出所在函数 # Quit:结束调试 # 用assert语句调试程序:assert expression, [,reason] # expression:条件表达式,如果该表达式的值为真时,什么都不做,如果为假则抛出AssertionError异常。 # reason:可选参数,对判断条件进行描述,为了以后更好的知道是哪里出了问题。 # 定义好错误后,在函数外部用try...except就可以捕获到这个异常