目录
一、错误与异常处理
二、语法格式
三、异常及其导致错误
四、自定义异常
一、错误与异常处理
有时候程序执行到错误代码的时候,程序直接终止报错,出现了错误的提示,这就是“异常"。比如变量未定义,0做被除数都会报错。
二、语法格式
try:
可能 出现错误的代码块
except:
出错之后执行的代码块。(except可以指定类型捕获异常,except中的代码是捕获到异常时执行,避免程序因一段代码异常而使整个程序崩溃)
else:
没有出错的代码块
finally:
不管有没有出错都执行的代码块
三、异常及其导致错误
1异常 导致的错误
2AssertionError assert语句失败。
3AttributeError 属性分配或引用失败
4EOFError input( )函数达到文件结束条件时。
5FloatingPointError 浮点运算失败。
6GeneratorExit 调用生成器的close()方法时。
7ImportError 找不到导入的模块时
8IndexError 序列的索引超出范围。
9KeyError在字典中找不到键
10 KeyboardInterrupt 用户按下中断键(Ctrl+c或delete)时
11 MemoryError 操作耗尽内存
12 NameError局部或全局范围内找不到变量。
13Not ImplementedError由抽象方法提出
14OSError系统操作导致系统相关错误。
15 OverflowError算术运算的结果太大而无法表示。
16ReferenceError使用弱引用代理访问垃圾收集的引用。
17 RuntimeError错误不属于任何其他类别。
18stopIteration函数引发,以指示迭代器不再返回任何项。
19SyntaxError遇到语法错误时由解析器引发。
20IndentationError缩进不正确
21 TabError 当缩进由不一致的制表符和空格组成时引发。
22 SystemError 解释器检测到内部错误.
23SystemExit由sys. exit( )函数引发
24TypeError将函数或操作应用于类型不正确的对象时引发。
25 UnboundLocalError在函数或方法中引用局部变量,但没有将值绑定到该变量
26UnicodeError 发生与unicode相关的编码或解码错误时。
27 UnicodeEncodeError编码过程中发生与unicode相关的错误。
28UnicodeDecodeError解码过程中出现与unicode相关的错误
29 UnicodeTranslateError翻译过程中发生与unicode相关的错误。
38ValueError函数得到类型正确但值不正确的参数。
31ZeroDivisionError除法或模运算的第二个操作数为零
32Exception可捕获所有异常
四、自定义异常
自定义异常,要直接或间接继承Error或Exception类。
由开发者主动抛出自定义异常,在python中使用raise关键字。
如:
Class fnexcept(Exception):
try:
raise fnexcept()
exception fnexcept as e: