异常名称 | 描述 |
SystemExit | 解释器请求退出 |
FloatingPointError | 浮点计算错误 |
OverflowError | 数值运算超出最大限制 |
ZeroDivisionError | 除(或取模)零(所有数据型) |
KeyboardInterrupt | 用户中断执行 |
ImportError | 导入模块/对象失败 |
IndexError | 序列中没有此索引(index) |
RuntimeError | 一般的运行错误 |
AttributeError | 对象没有这个属性 |
IOError | 输入输出操作失败 |
OSError | 操作系统错误 |
KeyError | 映射中没有这个键 |
TypeError | 对类型无效的操作 |
ValueError | 传入无效的参数 |
Python异常处理格式
try:
语句块1
except 异常类型1:
语句块2
except 异常类型2:
语句块3
.......
except 异常类型N:
语句块 N+1
except:
语句块N+2
else:
语句块N+3
finally:
语句块N+4
除数为零的异常
x = int(input())
y = int(input())
try:
result = x / y
except ZeroDivisionError:
print("division by zero")
else:
print("result is", result)
finally:
print("executing finally clause")
程序输入:
6
4
程序输出:
result is 1.5
executing finally clause
程序输入:
5
0
程序输出:
division by zero!
executing finally clause
获取整个对象的异常
short_list = [1,2,3]
while True:
value = input('Position [q to quit]?')
if value == 'q'
break
try:
position = int(value)
print(short_list[position])
except IndexError as err:
print('Bad index:',position)
except Exception as other:
print('Something else broke:',other)
程序输出:
Position [q to quit]? 1
2
Position [q to quit]? 3
Bad index:3
Position [q to quit]? one
Something else broke:
invalid literal for int() with base 10:'one'
Position [q to quit]? Q