1 python中常见的异常
异常 | 描述 |
---|---|
NameError | 尝试访问一个没有声明的变量引发的错误 |
IndexError | 索引超出序列范围引发的错误 |
IndentationError | 缩进错误 |
ValueError | 传入的值错误 |
KeyError | 请求一个不存在的字典关键字引发的错误 |
IOError | 输入输出错误(文件不存在) |
ImportError | 无法找到相应模块或者名称 |
AttributeError | 尝试访问未知的对象属性引发的错误 |
TypeError | 类型不适合引发的错误 |
MemoryError | 内存不足 |
ZeroDivisionError | 除数0引发的错误 |
2 异常处理语句
2.1 try…except 语句
如果try后面语句发生异常的话,则执行except语句:
try:
pass
except [ExceptionName [as alias]]:
pass
注意:如果没在except后面接上异常类型名称的话,则默认捕获所有异常。如果try后面语句存在异常时,则系统捕获异常后继续执行。
2.2 try…except…else 语句
如果try后面语句没有发生异常的话,则执行else语句:
try:
run()
except IndexError:
pass
except NameError as nr:
print(nr)
else:
print('Success!')
2.3 try…except…finally 语句
无论try后面语句是否存在异常,都会执行finally语句:
try:
run()
except IndexError:
pass
except NameError as nr:
print(nr)
finally:
print('程序运行了一次。')
3 使用raise语句抛出异常
raise语句使用格式如下:
raise [ExceptionName[(reason)]]
例子:
raise ValueError("用户输入的值过小")
4 assert语句调试
assert语句使用格式如下:
assert expression [, reason]
如果表达式是错误的,系统将会自动报错跳出。
例子:
Jack_age = 19
Mike_age = 18
assert Jack_age < Mike_age, 'Jack比Mike小!'