第十一天 第九章 异常处理及程序调试

# 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就可以捕获到这个异常

 

posted @ 2020-08-24 09:36  Zack6688  阅读(180)  评论(0编辑  收藏  举报