1.异常的捕获
<1>捕获单个异常
"""
try:
可能发生异常的代码
except 异常的类型:
发生异常执行的代码
"""
print('其他的代码......')
num = input('请输入一个数字:')
try:
num = 10 / int(num)
print('计算得到的结果是:', num)
except ZeroDivisionError:
print('你输入有误,请再次输入')
print('其他的代码......')
<2>捕获多个异常
try:
print('-----test--1---')
open('123.txt','r')
print('-----test--2---')
print(num)
except (IOError,NameError):
"""
try:
可能发生异常的代码
except (异常的类型1, 异常类型2, ...):
发生异常执行的代码
"""
"""
try:
可能发生异常的代码
except 异常类型1:
发生异常1,执行的代码
except 异常类型2:
发生异常2,执行的代码
except ...:
pass
"""
print('其他的代码......')
num = input('请输入一个数字:')
try:
a = int(num)
num = 10 / a
print('计算得到的结果是:', num)
except ZeroDivisionError:
print('你输入有误,请再次输入')
except ValueError:
print('输入有误,请输入数字')
print('其他的代码......')
<3>获取异常的信息描述
"""
try:
可能发生异常的代码
except (异常的类型1, 异常类型2, ...) as 变量名:
发生异常执行的代码
print(变量名)
"""
print('其他的代码......')
num = input('请输入一个数字:')
try:
a = int(num)
num = 10 / a
print('计算得到的结果是:', num)
except (ZeroDivisionError, ValueError) as e:
print('你输入有误,请再次输入', e)
print('其他的代码......')
<4>捕获所有异常
try:
可能发生异常的代码
except:
发生异常执行的代码
==============
try:
可能发生异常的代码
except Exception as e:
发生异常执行的代码
print(e)
pass
ZeroDivisionError --> ArithmeticError --> Exception --> BaseException ---> object
ValueError --> Exception --> BaseException ---> object
print('其他的代码......')
num = input('请输入一个数字:')
try:
a = int(num)
num = 10 / a
print('计算得到的结果是:', num)
f = open('1.txt', 'r')
except Exception as e:
print('你输入有误,请再次输入', e)
print('其他的代码......')
<4>异常的完整结构
try:
可能发生异常的代码
except Exception as e:
发生异常执行的代码
print(e)
else:
代码没有发生异常,会执行
finally:
不管有没有发生异常,都会执行
print('其他的代码......')
num = input('请输入一个数字:')
try:
a = int(num)
num = 10 / a
print('计算得到的结果是:', num)
except Exception as e:
print('你输入有误,请再次输入', e)
else:
print('没有发生异常,我会会执行')
finally:
print('不管有没有发生异常,我都会执行')
print('其他的代码......')