python——异常

异常——01.py

# _*_ coding:utf-8 _*_
"""
file:异常——01.py
date:2018-07-24 9:20 AM
author:wwy
desc:

在程序开发中,如果对某些代码的执行不确定(程序的语法完全正确)
可以增加try来捕获异常
try:
    尝试执行的代码
except:
    出现错误的处理
"""


try:
    num = int(raw_input('请输入一个整数:'))
except:
    print '请输入正确的整数'

# 无论是否输入错误,程序都会正常运行
print '*' * 50

这里写图片描述
这里写图片描述
异常——02.py

# _*_ coding:utf-8 _*_
"""
file:异常——02.py
date:2018-07-24 9:36 AM
author:wwy
desc:

当python解释器抛出异常时,最后一行错误信息的
第一个单词,就是错误类型
"""
# 1.提示用户输入一个整数
# 2.使用9除以用户输入的整数并借输出
try:
    num = int(raw_input('请输入一个整数:'))
    result = 9 / num
    print result
except ZeroDivisionError:
    print '除数不能为0'
except ValueError:
    print '请输入正确整数!!'

# 1.输入的不是数字
# 2.除数不为0

运行结果:
这里写图片描述
这里写图片描述
异常——03.py

file:异常——03.py
date:2018-07-24 9:47 AM
author:wwy
desc:
捕获未知错误:
在开发的时候,要判断所有可能出现的错误,是有一定难度的
如果希望程序无论出现任何错误,都不会因python解释器抛出异常而终止
可以再增加一个except
"""


try:
    num = int(raw_input('请输入一个整数:'))
    result = 9 / num
    print result

# 捕获未知异常
# result:一个变量名,可以随便起名
except Exception as result:
    print '未知错误 %s' % result

运行结果:
这里写图片描述
这里写图片描述
异常——04.py

# _*_ coding:utf-8 _*_
"""
file:异常——04.py
date:2018-07-24 10:12 AM
author:wwy
desc:

try:
    尝试执行的代码
    pass
except 错误类型1:
    pass
except 错误类型2:
    pass
except Exception as result:

else:
    # 没有异常才会执行的代码
    pass
finally:
    # 无论是否有异常,都会执行的代码
    pass
"""


try:
    num = int(raw_input('请输入一个整数:'))
    result = 9 / num
    print result

# 捕获未知异常
# result:一个变量名,可以随便起名
except Exception as result:
    print '未知错误 %s' % result
# 只有再没有异常的时和,才会执行的代码
else:
    print '尝试成功!!'
finally:
    print '_____________'

运行结果:
这里写图片描述
这里写图片描述
异常——05.py

# _*_ coding:utf-8 _*_
"""
file:异常——05.py
date:2018-07-24 10:26 AM
author:wwy
desc:

异常的传递
当函数/方法执行出现异常,会将异常传递给函数/方法调用的一方
如果传递给主程序,依旧没有异常处理,程序才会终止,可以在主程序中增加
异常捕获,而在主函数中调用其他函数,只要出现异常,都会传递到主函数的异常
捕获中,这就不需要在代码中,增加大量异常捕获,能够保证代码的整洁
"""


def demo1():
    return int(raw_input('请输入整数:'))
# print demo1()

def demo2():
    return demo1()

# 利用异常的传递性,在主程序捕获异常
try:
    print demo2()
except Exception as result:
    print '未知错误 %s' % result

运行结果:
这里写图片描述

# _*_ coding:utf-8 _*_
"""
file:异常——06.py
date:2018-07-24 10:38 AM
author:wwy
desc:
判断用户输入的密码
1. <8    错误
2. >=8   返回输入的密码
"""


def input_passwd():
    # 1.提示用户输入密码
    pwd = raw_input('请输入密码:')

    # 2.判断密码的长度 >= 8,就返回用户输入的密码
    if len(pwd) >= 8:
        return pwd
    # 3. <8 主动抛出异常
    print '主动抛出异常'
    # 1.创建异常对象
    ex =Exception('密码长度不够')
    raise ex

# #注意:只抛出异常而不捕获异常,代码会报错
# print input_passwd()


try:
    print input_passwd()
except Exception as result:
    print result

运行结果:
这里写图片描述
这里写图片描述
断言.py

# _*_ coding:utf-8 _*_
"""
file:断言.py
date:2018-07-24 11:57 AM
author:wwy
desc:

"""


def func(num,div):                     #输入一个数字和除数
    assert (div != 0),'div 不能为0'     #如果没有这行,报错可能会看不懂
    return num / div

print func(10,0)

运行结果:
这里写图片描述

    # assert (div != 0),'div 不能为0'

运行结果:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/wwy0324/article/details/81259152
今日推荐