Python中的异常处理

异常

    在程序开发中,如果对于某些代码的执行不确定(程序的语法完全正确),并非程序本身的错误,是与外界交互时,外界输入不规范造成的。以下是处理异常的方法:

一、单个异常:

# 只有一个异常产生

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

# 只有程序正确的时候,才会执行else

esle:

    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  "密码设计成功!!"

 
原文地址:https://www.cnblogs.com/uthnb/p/9618306.html