一、认识异常

1、什么是异常

程序在运行过程中,不可避免地会出现一些错误,比如:使用了没有定义的变量;用0作除数等等。

在程序中,我们称这些错误为异常,每当发生错误时,python都会创建一个异常对象。

2、什么是Traceback

Traceback是python异常信息的报告。

在程序运行过程中,一旦出现异常将会导致程序终止,之后的代码不再执行,并显示一个Traceback信息,即一些错误提示信息,其中包含有关异常的报告。

例如:

python入门教程124期(python入门050认识异常)(1)

在上例中,我们首先定义了一个函数 hello,函数的参数是name,在函数体内,使用print语句输出一句话,其中nama是一个没有定义的变量,然后通过hello(‘Kitty’)调用刚才定义的hello函数,运行程序时系统发现异常,会终止程序并显示Traceback错误信息的报告。

3、解读Traceback信息

虽然python的Traceback提示信息看着挺复杂,但是里面有丰富的信息,通过解读Traceback可以帮我们诊断引发异常的原因,并定位到具体哪个文件的哪行代码出现的错误。

Traceback提示信息的阅读顺序由下而上,最下面的信息抛出错误的最外层的位置,越往上代码调用深度越深。最后一行一般会告诉我们引发了什么类型的异常,以及关于该异常的一些相关信息。前面几行指出引发异常的代码文件路径、行数以及模块或者方法名,在python中点击文件的链接即可定位到错误的位置。

python入门教程124期(python入门050认识异常)(2)

python入门教程124期(python入门050认识异常)(3)

在上例中,最后一行错误消息行显示异常类型是 NameError,意思是名称使用了一个没定义的名称(变量、函数、类)的引用。在本例中,引用的异常名称是nama。

我们点击文件的链接定位到错误的位置,或在代码中搜索错误提示中的名称nama,会发现这是一个拼写错误,我们将它改正成name后,再次运行程序,就会正常输出,如下图所示:

python入门教程124期(python入门050认识异常)(4)

二、动手实践

当除数为零时,python就会抛出ZeroDivisionError异常,试着观察并解读对应的Traceback信息。

python入门教程124期(python入门050认识异常)(5)

,