在程序执行过程中发生的任何错误都是异常。每个异常显示一些相关的错误信息,比如你在 Python3 中使用 Python2 独有的语法就会发生 SyntaxError
1、
访问一个未定义的变量则会发生 NameError。
2、当操作或函数应用于不适当类型的对象时引发 TypeError,一个常见的例子是对整数和字符串做加法。
3、使用 try...except
块来处理任意异常
工作方式如下:
-
如果没有异常发生,
except
子句 在try
语句执行完毕后就被忽略了。 -
如果在
try
子句执行过程中发生了异常,那么该子句其余的部分就会被忽略。如果异常匹配于
except
关键字后面指定的异常类型,就执行对应的except
子句。然后继续执行try
语句之后的代码。 -
如果发生了一个异常,在
except
子句中没有与之匹配的分支,它就会传递到上一级try
语句中。如果最终仍找不到对应的处理语句,它就成为一个 未处理异常,终止程序运行,显示提示信息。
4、使用 raise
语句抛出一个异常。
5、try
语句还有另一个可选的 finally
子句,目的在于定义在任何情况下都一定要执行的功能,即不管有没有发生异常,finally
子句 在程序离开 try
后都一定会被执行。当 try
语句中发生了未被 except
捕获的异常(或者它发生在 except
或 else
子句中),在 finally
子句执行完后它会被重新抛出。在真实场景的应用程序中,finally
子句用于释放外部资源(文件或网络连接之类的)