Python使用被称为异常的特殊对象来管理程序执行期间发生的错误。每当发生执行错误时,Python都会创建一个异常对象。如果编写了处理该异常的代码,程序将继续执行;如果未对异常进行处理,程序将停止,并显示一个Trackback,其中包含有关异常的报告。

1.try-except代码块

异常是用try-except代码块处理的。try-except代码块让Python执行指定的操作。同时告诉Python发生异常时怎么办。使用了try-except代码块时,即便出现异常,程序也将继续执行:显示编写的友好错误信息,而不是显示一个Trackback.

众所周知,不能将一个数字除以0,但我们假设让Python这样做,会发生什么,编写程序如下所示:

image

我们发现在终端窗口出现了Trackback,并且没有对num的值进行输出。这就是我们前面说的,如果未对异常进行处理,程序将停止,并显示一个Trackback,提示该错误为ZeroDivisionError异常。

当我们认为可能会发生错误时,可编写一个try-except代码块来处理可能引发的异常。

其语法格式:

image

我们将上面的程序通过try-except代码块进行完善,编写程序如下所示:
image

我们这里用一条输出语句代替了异常处理过程,通过输出结果发现,通过try-except代码块,异常情况被处理,程序正常运行,输出了num的数值。

2.else代码块

通过将可能引发错误的代码放在try-except代码块中,可提高程序抵御错误的能力。而else代码块中包含的是try中可能引发错误的代码块被成功执行后应该如何操作的代码块

其语法格式:

image

我们编写个用input函数来进行输入,计算除法结果的程序,编写程序如下所示:

image

当我们正常输入时,10/2的结果是5.0在else代码块中正常输出,else代码块外result+1的计算结果6.0也被正常输出了。

当我们除数输入为0时,引发了ZeroDivisionError,经过异常处理,处理了这个错误,这时因为异常发生了,所以else代码块时不经过的,直接到了else代码块外,因为result的初始值为0,进行运算之后,结果为1。

本次程序举例中用到的是ZeroDivisionError异常,程序中可能发生的异常时多种多样的,我们需要知道在发生异常时的错误名称,把它通过try-except或者try-except-else代码块来处理即可。

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/lbprogram/p/17504661.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!