python笔记 错误和异常
好记性不如烂笔头,学习从摘抄开始!
目录
异常:程序运行的时候报出来的。一般为***Error
情况1:try - except
try:
#<可能出现异常的代码>
pass
except:
#<如果出现异常执行的代码>
pass
情况2:try - except 异常类型
try:
#<可能出现异常的代码>
pass
except <异常类型1>:
#<如果出现异常1执行的代码>
pass
except <异常类型2>:
#<如果出现异常2执行的代码>
pass
情况3:try- except 异常类型 - expect Exception
try:
#<可能出现异常的代码>
pass
except <异常类型1>:
#<如果出现异常1执行的代码>
pass
except <异常类型2>:
#<如果出现异常2执行的代码>
pass
except Exception:
#<出现与以上类型都不同的异常所执行的代码>
pass
情况4:try- except 异常类型 - expect Exception as err
try:
#<可能出现异常的代码>
pass
except <异常类型1>:
#<如果出现异常1执行的代码>
pass
except <异常类型2>:
#<如果出现异常2执行的代码>
pass
except Exception as err:
#<出现与以上类型都不同的异常所执行的代码,并获取错误类型err>
pass
情况5:try - except - finally
try:
#<可能出现异常的代码>
pass
except <异常类型>:
#<如果出现异常执行的代码>
pass
finally:
#<无论是否异常都执行的代码>
pass
注意:
1.finally部分为非必须部分,如果出现finally,无论是否出现异常都会执行,
2.即使try和except内存在return语句,finally也会执行,
3.如果finally与try和except中同时存在return语句,try和finally中的return会被finally中的return语句覆盖
4.一般用于文件操作或数据库操作,避免内存未被释放,在finally中关闭 文件或数据库
情况6:try - except - else
try:
#<可能出现异常的代码>
pass
except <异常类型>:
#<如果出现异常1执行的代码>
pass
else:
#<无异常情况下执行的代码>
pass
注意:
1.出现else时,return语句不能出现在try中,否则else语句中的内容不会执行
2.无异常情况下先执行try,再执行else,出现异常时只执行except
情况7: raise 自定义错误类型,
例子
def func():
username = input('请输入用户名:')
if len(username) < 6:
#自定义错误类型
raise Exception('用户名必须是6位以上')
else:
print('welcome!')
try:
func()
except Exception as err:
print(err)
print('注册失败!')
else:
print('注册成功!')
结果:
请输入用户名:admin
用户名必须是6位以上
注册失败!