异常——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'
运行结果: