Python异常处理
一、Python中常见的异常
异常 | 描述 |
---|---|
NameError | 尝试访问一个没有声明的变量引发的错误 |
IndexError | 索引超出序列范围引发的错误 |
IndentationError | 缩进错误 |
ValueError | 传入的值错误 |
KeyError | 请求一个不存在的字典关键字引发的错误 |
IOError | 输入输出错误(如果文件不存在) |
ImportError | 当import语句无法找到模块或from无法在模块中找到相应名称时引发的错误 |
AttributeError | 尝试访问未知的对象属性引发的错误 |
TypeError | 类型不合适引发的错误 |
MemoryError | 内存不足引发的错误 |
ZeroDivisionError | 除数为0引发的错误 |
二、Python中的异常处理语句
-
try……except 语句
语法格式:try: 逻辑代码块 except 异常类型: 异常处理代码块
-
try……except……else 语句
语法格式:try: 逻辑代码块 except 异常类型: 异常处理代码块 else: 未发生异常,继续执行的逻辑代码块
-
try……except……finally 语句
语法格式:
try: 逻辑代码块 except 异常类型: 异常处理代码块 finally: 无论是否发生异常,都要执行的代码块
-
使用raise语句抛出异常
语法格式:
raise 异常类型("异常原因")
三、Python自定义异常类
自定义的类只需要继承Exception类就可以作为异常类使用:
class TooMuchRequestError(Exception):
def __init__(self, error):
self.error = error
def __str__(self, *args, **kwargs): # print时调用的方法
return self.error