概要
文章介绍了三种处理异常的语句,包括try、raise和assert。
一、try语句
try语句有四个关键字,try、except、else和finally。首先程序试着运行try的语句块,当出现异常后,依次查找后面的except。except后一般加上异常的类型,即表示当出现某一异常时,对于这一异常要如何处理,如果后面没有接异常类型则无论是和异常都会执行该except后的语句块,因而except后加异常类型的一般写在前面,最后加上不加异常类型的,如果所有异常类型都不匹配,则有python解释器退出程序返回错误提示。else后的语句块会在try中的语句块没有发生异常时执行。finally后的语句块在任何情况都执行,除非在except处程序退出。以下是一些常见的异常类型:
异常名称 | 意义 |
---|---|
SystemExit | 解释器请求退出 |
FloatingPointError | 浮点数计算错误 |
OverflowError | 数值运算超出最大限制 |
ZeroDivisionError | 0做除数 |
KeyboardInterrupt | 用户中断程序 |
ImportError | 导入失败 |
IndexError | 索引错误 |
RuntimeError | 运行时出错 |
AttributeError | 对象没有这个属性 |
IOError | 输入输出错误 |
OSError | 操作系统错误 |
KeyError | 没有这个键 |
TypeError | 对该类型没有这个操作 |
ValueError | 传入参数错误 |
二、raise语句
raise语句的作用是主动抛出异常,他的基本形式是:
raise 错误类型(“错误的提示语句”)
这常常用来配合函数做参数检查。
def area(r):
if r >= 0:
return S * r * r
else:
return raise ValueError("半径小于0")
r = -1
try:
print(area(r))
except ValueError as msg:
print(msg)
输出为:
半径小于0
三、assert语句
assert语句是用来判断某些条件(语句1)是否正常,如果不正常则会执行语句2并抛出AssertionError。其基本形式为:
assert 语句1 语句2