错误 异常
1、错误
语法错误 逻辑错误
2、异常 (逻辑错误)
程序执行过程中出现问题导致程序无法执行
3、常见异常
AttributeError
试图访问一个对象没有的属性,比如foo.x
,但是foo
没有属性x
IOError
输入/输出异常;基本上是无法打开文件
ImportError
无法引入模块或包;基本上是路径问题或名称错误
IndentationError
语法错误(的子类) ;代码没有正确对齐
IndexError
下标索引超出序列边界,比如当x
只有三个元素,却试图访问x[5]
KeyError
试图访问字典里不存在的键
KeyboardInterrupt
Ctrl+C
被按下
NameError
尝试访问一个没有申明的变量
SyntaxError Python
代码非法,代码不能编译(个人认为这是语法错误,写错了)
TypeError
传入对象类型与要求的不符合
UnboundLocalError
试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问它
ValueError
传入一个调用者不期望的值,即使值的类型是正确的
--------------------------------------------------------------
BaseException
所有异常的基类
SystemExit
解释器请求退出
KeyboardInterrupt
用户中断执行(通常是输入^C)
Exception
常规错误的基类
StopIteration
迭代器没有更多的值
GeneratorExit
生成器(generator)发生异常来通知退出
StandardError
所有的内建标准异常的基类
ArithmeticError
所有数值计算错误的基类
FloatingPointError
浮点计算错误
OverflowError
数值运算超出最大限制
ZeroDivisionError
除(或取模)零 (所有数据类型)
AssertionError
断言语句失败
AttributeError
对象没有这个属性
EOFError
没有内建输入,到达EOF 标记
EnvironmentError
操作系统错误的基类
IOError
输入/输出操作失败
OSError
操作系统错误
WindowsError
系统调用失败
ImportError
导入模块/对象失败
LookupError
无效数据查询的基类
IndexError
序列中没有此索引(index)
KeyError
映射中没有这个键
MemoryError
内存溢出错误(对于Python 解释器不是致命的)
NameError
未声明/初始化对象 (没有属性)
UnboundLocalError
访问未初始化的本地变量
ReferenceError
弱引用(Weak reference)试图访问已经垃圾回收了的对象
RuntimeError
一般的运行时错误
NotImplementedError
尚未实现的方法
SyntaxError Python
语法错误
IndentationError
缩进错误
TabError
Tab
和空格混用
SystemError
一般的解释器系统错误
TypeError
对类型无效的操作
ValueError
传入无效的参数
UnicodeError Unicode
相关的错误
UnicodeDecodeError
Unicode
解码时的错误
UnicodeEncodeError
Unicode
编码时错误
UnicodeTranslateError
Unicode
转换时错误
Warning
警告的基类
DeprecationWarning
关于被弃用的特征的警告
FutureWarning
关于构造将来语义会有改变的警告
OverflowWarning
旧的关于自动提升为长整型(long)
的警告
PendingDeprecationWarning
关于特性将会被废弃的警告
RuntimeWarning
可疑的运行时行为(runtime behavior)
的警告
SyntaxWarning
可疑的语法的警告
UserWarning
用户代码生成的警告
4、异常处理
try:
可能发生异常的代码
except[Exception [as err]]:
异常处理
except[Exception [as err]]:
异常处理
except[Exception [as err]]:
异常处理
...
else:
不发生异常
finally:
总是执行
5、自定义异常 raise
class MyError(BaseException):
def __init__(self,err):
super().__init__(err)
age = 14
if age<15:
raise MyError("MyError:年龄小于15岁,不允许学python")
抽象类:
1、抽象类:当父类中部分方法不能满足所以子类或大多数子类需求时,但父类强制子类必须有该方法时,在父类中定义成抽象方法。
特质:1)抽象类:可以有抽象方法,也可以有普通方法
2)抽象类:不能直接实例化(创建对象),通过子类间接实例化
3)抽象类:允许有构造方法
2、接口:都是抽样方法的类
class animal():
def eat(self):
pass
def sleep(self):
pass
class cat(animal):
def eat(self):
print("吃猫粮")