一、TypeError:类型错误,对象用来表示值的类型非预期类型时发生的错误
错误例子:
age=18
print(‘我的年龄是’+age)
报错信息:TypeError: can only concatenate str (not "int") to str
这是类型错误,提示必须是一个字符串,不能是数字。
解决方法:在使用“+”做拼接的时候,必须使用字符串,或者把数字转化成字符串。
二、AttributeError:属性错误,特性引用和赋值失败时会引发属性错误
tp=('1','3','5')
tp.append('7')
print(tp)
AttributeError: 'tuple' object has no attribute 'append'
提示:属性错误:元组对象没有“append”的属性,简单来说元组是不可变对象。
解决方法:把元组换成列表。
三、NameError:试图访问的变量名不存在
print(a)
报错:NameError: name 'a' is not defined。
变量a没有定义,解决方法是在前面给a赋值
还有一种需要小心处理的是:变量或者函数名拼写错误。
四、SyntaxError:语法错误,代码形式错误
五、KeyError:在读取字典中的key和value时,如果key不存在,就会触发KeyError错误
六、IndexError:索引错误,使用的索引不存在,常索引超出序列范围,序列中没有此索引(index)
七、IndentationError:缩进错误
八、TabError: Tab 和空格混用
其它常见标准异常
AssertionError
|
断言语句(assert)失败
|
AttributeError
|
尝试访问未知的对象属性
|
EOFError
|
用户输入文件末尾标志EOF(Ctrl+d)
|
FloatingPointError
|
浮点计算错误
|
GeneratorExit
|
generator.close()方法被调用的时候
|
ImportError
|
导入模块失败的时候
|
IndexError
|
索引超出序列的范围
|
KeyError
|
字典中查找一个不存在的关键字
|
KeyboardInterrupt
|
用户输入中断键(Ctrl+c)
|
MemoryError
|
内存溢出(可通过删除对象释放内存)
|
NameError
|
尝试访问一个不存在的变量
|
NotImplementedError
|
尚未实现的方法
|
OSError
|
操作系统产生的异常(例如打开一个不存在的文件)
|
OverflowError
|
数值运算超出最大限制
|
ReferenceError
|
弱引用(weak reference)试图访问一个已经被垃圾回收机制回收了的对象
|
RuntimeError
|
一般的运行时错误
|
StopIteration
|
迭代器没有更多的值
|
SyntaxError
|
Python的语法错误
|
IndentationError
|
缩进错误
|
TabError
|
Tab和空格混合使用
|
SystemError
|
Python编译器系统错误
|
SystemExit
|
Python编译器进程被关闭
|
TypeError
|
不同类型间的无效操作
|
UnboundLocalError
|
访问一个未初始化的本地变量(NameError的子类)
|
UnicodeError
|
Unicode相关的错误(ValueError的子类)
|
UnicodeEncodeError
|
Unicode编码时的错误(UnicodeError的子类)
|
UnicodeDecodeError
|
Unicode解码时的错误(UnicodeError的子类)
|
UnicodeTranslateError
|
Unicode转换时的错误(UnicodeError的子类)
|
ValueError
|
传入无效的参数
|
ZeroDivisionError
|
除数为零 |
try……except……捕获异常
#捕获特殊异常
while True:
try:
age = int(input('你今年几岁了?'))
break
except ValueError:
print('你输入的不是数字!')
#捕获异常信息
try:
...
except Exception as e:
...
except ValueError as err:
print('错误的值是:', err)