目录
1.获取异常的信息描述
格式:
try :
...执行代码...
...执行代码...
except 异常类型 as 变量名:
...执行异常...
...执行异常...
应运:
try:
print(1 / 0)
except ZeroDivisionError as e:
print('异常信息为:', e) # 异常信息为: division by zero
2.捕获所有异常
格式:
捕获所有异常
try:
...代码...
...代码...
except:
...代码...
...代码...
或
try:
...代码...
...代码...
except Exception:
...代码...
...代码...
第一种格式:
try:
s = [1]
print(s[3])
except:
print('程序出错') # 程序出错
第二种格式:
try:
s = [1]
print(s[3])
except Exception as e:
print('程序出错',e) # 程序出错 list index out of range
3.try...else...
if...else...,在if中,它的作用是当条件不满足时执行的实行,在try...except...中也是如此,即如果没有捕获到异常,那么就执行else中的事情
try:
print('开始了')
s = [1]
print(s[3])
except Exception as e:
print('程序出错',e)
else:
print('o(* ̄︶ ̄*)o')
print('结束了')
'''
输出以下内容:
开始了
程序出错 list index out of range
结束了
'''
注意:else一定要有except否则包语法错误
4.try...finally...
try...finally...语句用来表达这样的情况:
在程序中,如果一个段代码必须要执行,即无论异常是否产生都要执行,那么此时就需要使用finally。 比如文件关闭,释放锁,把数据库连接返还给连接池等。
说明:不管try语句有没有执行成功,都会执行finally当中的代码段
try:
print('开始了')
s = [1]
print(s[3])
except Exception as e:
print('程序出错',e)
finally:
print('无论有没有异常都要执行')
print('程序结束...')
'''
输出以下内容:
开始了
程序出错 list index out of range
无论有没有异常都要执行
程序结束...
'''
5.raise抛出系统异常
你可以用raise语句来引发一个异常,异常/错误对象必须有一个名字,且它们应是Error或Exception类的子类
raise 手动捕获异常
while True:
try:
name = input('请输出姓名:(不能小于三位)')
if len(name) < 3:
raise Exception('短了!') # 手动抛出异常
else:
pwd = input('请输入密码:')
print(name, pwd)
except Exception as e:
print(e)
'''
请输出姓名:(不能小于三位)zx
短了!
请输出姓名:(不能小于三位)z
短了!
请输出姓名:(不能小于三位)zxc
请输入密码:123
zxc 123
请输出姓名:(不能小于三位)
'''