| 异常 | 描述 |
| NameError | 尝试访问一个没有声明的变量 |
| ZeroDivisionError | 除数为0 |
| SyntaxError | 语法错误 |
| IndexError | 索引超出序列范围 |
| KeyError | 请求一个不存在的字典关键字 |
| IOError | 输入/输出错误(比如你要读的文件不存在) |
| AttributeError | 尝试访问未知的对象属性 |
PRint(e)5.3.3 else语句
try: print("I am try")except: print("I am except")else: print("I am else")I am tryI am elsetry: print(1/0)except: print("I am except")else: print("I am else")I am exceptexcept(Exception)as e: 不管什么异常都会捕获,并且传给变量e。5.3.4 finally子句
有了finally,不管前面执行的是try,还是except,最终都要执行finally。因此,有一种说法是将finally用在可能的异常后进行清理。5.3.5 assert语句
>>> assert 1==1>>> assett 1==0 File "<stdin>", line 1 assett 1==0 ^SyntaxError: invalid syntaxassert,翻译过来就是“断言”之意。assert是语句等价于布尔真的判定,发生异常就意味着表达式为假。应用情境就和意思一样,当程序运行到某个节点的时候,就断定某个变量的值是什么,或者对象必然拥有某个属性等,简单说就是断定什么东西必然是什么,如果不是,就抛出错误。如果没有特别的目的,断言应该用于如下情况:防御性的编程。运行时对程序逻辑的检测。合约性检查(比如前置条件,后置条件)。程序中的常量。检查文档。(python使用断言的最佳时机)
新闻热点
疑难解答