人生苦短,我用Python
Python异常处理
俗话说:常在河边走哪有不湿脚?编程中也常有异常情况出现,当异常出现如何处理?或是能否在异常出现之前,对可能出现的异常情况预先安排好应对策略?
python语言中的异常处理就是针对这种情况设计的。
Python异常处理
try : dosomething # 程序中可能出现异常的部分代码except (except-class1,except-class2...) as e: # 多个异常情况,可以元组的方式列出。或者也可以用多个except块分别处理不同的异常 dosomething # 异常出现时的处理代码else: dosomething # 异常没有出现时执行的代码(**可选**)finally : dosomething # 无论异常是否出现都执行的代码块(**可选**)
Python内建异常类型
序号 | 类名 | 描述 |
---|---|---|
1 | Exception | 所有异常的基类 |
2 | AttributeError | 特性引用或赋值失败时引用 |
3 | IOError | 试图打开不存在的文件(或其他I/O情况)时引发 |
4 | IndexError | 使用序列中不存在的索引时引发(越界) |
5 | KeyError | 引用映射中不存在的键时引发 |
6 | NameError | 变量名引用错误时引发 |
7 | SyntaxError | 代码为错误形式时引发(语法错误) |
8 | TypeError | 内建操作或函数应用于错误类型的对象时引发 |
9 | ValueError | 内建操作或函数应用于正确对象,但该对象使用不合适的值时引发 |
10 | ZeroDivistionError | 在除数为零的除法运算中引发 |
补充
raise 抛出异常。用于自行抛出异常或在捕捉到异常后抛出给后面的程序处理。
raise 'Exception mession'
自定义异常类。异常类可以自行定义,但定义时要确保从Exception类继承(直接或间接)
class someException(Exception) : pass
try代码块中调用的函数里引发异常,若函数中没有捕捉则异常会上浮至函数调用处,若仍未捕捉则继续上浮,直至主程序;若至此仍未被捕捉处理,则程序中止执行。
作者:默默而行
链接:https://www.jianshu.com/p/79022a1f9a88