一)异常捕获try的定义:

try:
    pass  #可能存在异常的代码
except 错误类型1:
    pass  #对应的代码处理
except (错误类型2, 错误类型3):
    pass   #对应的代码处理
except Exception as result:
    print(result)   #打印错误信息
else:
    pass  #没有异常才会执行
finally:
    pass   #无论正常还是异常,都要执行。
    

二)异常捕获的特性-----异常具有传递行,所以一般在主函数中捕获异常。在其他函数中重点处理业务逻辑。这样不需要在代码中增加大量的异常捕获,可以保证代码的整洁性。

def fun1():
    value = int(input('please enter a int:'))
    return value

def fun2():
    return fun1()

try:
    print(fun2())
except Exception as result:
    print("异常错误:%s" % result)

三)主动抛出异常raise
python中提供了一个exception类,
根据特有的业务需要,可以设置主动抛出异常
1)创建一个异常exception 类
2)使用raise关键字抛出异常

eg:

def set_passwd():
    pwd = input("please enter the password:")

    if len(pwd) >= 8:
        return pwd
    
    ex = Exception('the longth of pwd is not enough!')
    raise ex

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

樱桃小丸子
27 声望1 粉丝