异常
在程序开发中,如果对于某些代码的执行不确定(程序的语法完全正确),并非程序本身的错误,是与外界交互时,外界输入不规范造成的。以下是处理异常的方法:
一、单个异常:# 只有一个异常产生
try:
num = int(raw_input("请输入一个整数:"))except:print "请输入一个整型"
二、多个异常
如果有多个异常时,可以在except后边添加异常的类型。(异常的类型可以通过错误测试得到;当python解释器出现异常时,最后一行提示的第一个单词为错误类型)# 多个异常产生,使用多个except.
try:
num = int(raw_input("请输入一个整数:"))
reslt = 8 / num
print reslt
except ZeroDivisionError:
print "除数不能为0!"
except ValueError:
print "类型不正确,请输入整数!"三、捕获未知异常:
在开发的时候,要判断所有可能出现的异常是一定的难度的。所以,如果希望程序无论出现任何错误,都不会因python解释器抛出的异常而终止,我们再可以增加一个except来接收未知错误。# 有未知异常的时候,进行如下捕获
try:
num = int(raw_input("请输入一个整数:"))
reslt = 8 / num
print reslt
except ZeroDivisionErrot:
print "除数不能为0"
except Exception as result:# result变量是随便起的,可以接收错误信息
print "未知异常:%s" % result四、完整的异常捕获:
使用关键字:try ---> else ---> finally ;其中try后面为可能出现异常的代码,else后为可能为结果正确的才会执行的码,finally后为无论程序是否有异常,都会执行的代码。try:
num = int(raw_input("请输入一个整数:"))
reslt = 8 / num
print reslt
except ZeroDivisionErrot:
print "除数不能为0"
# 捕获未知异常
except Exception as result:# result变量是随便起的,可以接收错误信息print "未知异常:%s" % result
# 只有程序正确的时候,才会执行elseesle:
print "程序正常执行!"
# 程序无论是否异常,都会执行finally中代码
finally:
print "hello world!!!"五、主动抛出异常情况:# 实例:输入一个密码。当密码为长度 >= 8合理,返回密码输入的密码;否则异常
def demo()
# 提示用户输入密码
pawd = raw_input("请输入密码:")
# 对密码的长度进行判断
if len(pawd) >= 8:
return pawd
# 当密码长度小于8时,主动抛出异常(首先创建异常对象,添加异常信息)
expt = Exception("密码长度不够!!!")
raise expt
# 注意:只抛出异常而不捕获,会出现错误;以下是捕获异常的部分
try:
print demo() # 若密码正确,输出密码;错误的话,输出错误的提示信息
except Exception as result:
print "异常信息提示:%s" %result
else:
print "密码设计成功!!"