python基础教程lesson6

作者: laokou 分类: Python 发布时间: 2017-11-01 11:02
#异常及处理措施
print("开始异常及处理措施的学习")
print("比如输出一个除法的结果,分母为0")
#print(1/0)
print("如果按照上面的print,输出会报错,错误有提示,为ZeroDivisionError,就是分母不应该为0")
print("有很多错误提示,比如字符串不能和数字相加,不存在的模块等等")
print("为了避免用户输入出现问题,导致程序半路出错,可以用try语法来提前规避")
try:
    print(7/0)
except ZeroDivisionError:
    print("分母不能为0")
print("看,上面就成功的规避了分母为0的问题并且进行了提示")
print("这里需要注意几个问题")
try:
    print(7/0)
    print("这句话不会被显示,因为出现指定错误后,下面的语句不在运行")
except ZeroDivisionError:
    print("会顺序执行except后的语句")
try:
    print("这句话会被显示出来")
    print("因为没有错误,except的所有语句不会被执行")
except ZeroDivisionError:
    print("这句话不会被显示")
print("用try,except关键字,如果出现错误,try里剩余的语法不会被执行,立刻跳转到except里执行其所有语句")
print("如果没有错误,执行所有try里的语法,except不会执行")
print("except还可以有多个参数")
try:
    print(1/0)
except(ValueError,ZeroDivisionError):
    print("输入错误")
except ZeroDivisionError:
    print("已经有第一个except,本次不会再执行")
print("还有一个万金油办法,except后面不接指定错误,那就是所有错误都会执行except")
try:
    print(1/0)
except:
    print("有错误发生了")
print("这样有一个缺点就是不能明确提示到底是什么错误")
print("还有一个 finally关键字,在try和except之后还进行一次任务")
"""
try:
    print(1/0)
finally:
    print("即使有错误,并且没有排错(没有except),也会执行finally里的语句")
    print("执行完后就报错啦。")
"""
try:
    print(1/0)
except ValueError:
    print("这个不会被执行,因为不是这个错误")
except ZeroDivisionError:
    print("这句会被执行,因为检测到了")
finally:
    print("即使有错误,并且没有排错(没有except),也会执行finally里的语句")
    print("执行完后就报错啦。")
    print("这次不会报错是因为处理了,没有处理错误的部分已经用引号全起来了")
#===============================================================================
print("有的时候因为需要,可以认为制造一个错误-。-")
try:
    print(1/0)
except ZeroDivisionError:
    print("注意")
    #raise ValueError
    print("注意,如果这时候制造一个错误,前面的Zero错误也会一同出来")
    print("可以尝试把raise前面的#去掉试一试")
    print("应该可以理解为引发一个错误不算一个解决错误的方式")
print("当然,引发一个错误和try和except没有什么关系,随时可以引发")
print("可以结合没有明确错误值的except使用")
try:
    print(1/0)
except:
    print("有错误发生,即将出发错误")
    #raise ZeroDivisionError
    #raise
    print("如果把前面rasie的#去掉,就重新触发了Zero错误,程序就会报错")
print("作用待定,感觉能作为判断使用")
#=============================================================================
#其他关键字
print("断言,assert,断言一个判断,如果True,执行,不成立报错")
assert 1==1
print("和其他关键字不同,断言没有一个返回值,用print打印会发现提示语法错误")
try:
    assert 1==2
except:
    print("断言失败")
print("可以看出断言错误也可以用try和except关键词")
try:
    assert(1==2),print("这样的用法是报指定错误,指定的错误为,后的话,这里为输出本内容")
except:
    print("断言失败")
print("这样用断言,并结合try使用,同时报指定的错误并且同时执行except")
"""
def errorr(x):
    assert x>0,"Error"
    print(x)
errorr(-5)
"""
print("上面的内容为教程的一个案例,没有见到特别的用法")
print("看了一些教程,应该是调试用的,就简单说到这")

发表评论

电子邮件地址不会被公开。