阅读量:
166
初次接触Python的学习笔记,部分作手册自查使用。如有错误或遗漏还请海涵,可评论或邮箱联系。
最后修改时间:2020-05-18 21:22:52 星期一
健壮程序的要求
在工业级代码中,必须要求开发的程序可以在收到异常后,针对性的做出处理
捕获异常语法
简单语法
try:
# 尝试执行的代码
pass
except:
# 出现错误的处理
pass
错误类型捕获
try:
# 尝试执行的代码
pass
except 错误类型1:
# 针对错误类型1的处理代码
pass
except (错误类型2, 错误类型3):
# 针对错误类型2和3的处理代码
pass
except Exception as result:
# 打印错误信息
print(result)
完整语法
try:
# 尝试执行的代码
pass
except 错误类型1:
# 针对错误类型1的处理代码
pass
except (错误类型2, 错误类型3):
# 针对错误类型2和3的处理代码
pass
except Exception as result:
# 打印错误信息
print(result)
else:
# 没有异常才执行的代码
pass
finally:
# 无论是否有异常,都会执行的代码
print("无论是否有异常,都会执行的代码")
在主程序中捕获异常
异常的传递
当函数/方法执行出现异常,会将异常传递给函数/方法的调用一方。如果传递到主程序,仍然没有异常处理,程序才会被终止
开发建议
在开发中,可以只在主函数中增加异常捕获。只要其他函数出现异常,都会传递到主函数的异常捕获中,保证了代码的简洁
主动抛出异常
【方法】
创建一个Exception的对象
使用raise关键字抛出异常对象
【例子】
定义input_password函数,提示用户输入密码
如果用户输入长度<8,抛出异常
如果用户输入长度>=8,返回输入的密码
def input_password():
# 1. 提示用户输入密码
pwd = input("请输入密码:")
# 2. 判断密码长度 >= 8,返回用户输入的密码
if len(pwd) >= 8:
return pwd
# 3. 如果 <8 主动抛出异常
# 1> 创建异常对象
ex = Exception("密码长度不够")
# 2> 主动抛出异常
raise ex
# 提示用户输入密码
print(input_password())