ad

《Python编程从0到1 视频教学版》_深入Python设计的本质_1.10 异常处理

admin 148 2023-10-19

【摘要】 本书摘自《Python编程从0到1 视频教学版》一书中第1章,第10节,作者是张頔。

1.10 异常处理

程序的执行会遇到意外情况,由于程序执行导致的运行错误被称为“异常”

(exception)。 在产生异常时,正常执行流程会被打断,转而执行某种预先设定的行为。

程序员经常会写出不正确的代码。这些代码有时会导致程序运行错误,这种情况也会 产生异常,往往导致程序崩溃,甚至引发重大事故。有时程序会在执行错误代码后继续运 行很久,这种情况会使程序更加难以调试,并且会出现奇怪的错误问题。

《Python编程从0到1 视频教学版》_深入Python设计的本质_1.10 异常处理

说明: 引起重大事故的错误根源是多方面的(比如安全意识淡薄、安全投入不足、管理制度不完善等),但在信息时代往往是由于错误的软件设计引起的。“

异常处理机制是用以解耦正常代码和错误处理代码的流程控制手段。使用异常处理结 构,程序员可以更清晰地构建健壮的程序。在不同的程序设计语言中,异常处理的重要性 也有所不同。在Python中,异常机制无处不在,不使用异常处理就无法写出健壮的 Python 程序(很多 Python 函数表示错误的唯一方式是异常)。

本节将使用1.8.5节的逆波兰表达式计算程序作为示例,演示部分异常处理手段。如 果读者跳过了1.8.5节的内容或对该节的内容理解不够清晰,建议再次阅读该节内容。

【学习目标】

· 了解Python的异常处理语法;● 了解异常处理的执行流程;

· 了解各种异常类型。

1.10.1 基本语法

Python 异常处理的基本语法如图1.64所示。

try:

except :

正常执行代码

异常种类

异常处理代码

图1.64 异常处理的基本语法

try 关键字跟随的语句块是程序的正常执行逻辑。当产生类型的异常时, 该代码会停止执行,转而执行except关键字后面的异常处理代码。 Python 内建的异常类型 请参见标准库文档[5]。另外本书将在第4章讲解如何创建自定义异常类型。如果不指定 异常种类,则会默认捕获全部能够获得的异常。在except语句块执行后,程序不会再执行 try 语句块剩下的代码,而是直接执行 try-except结构之后的代码。这个过程被形象地称为 “捕获异常” (catch exception)。 其执行流程如图1.65所示。

代码1.32 divide.py 捕获ZeroDivisionError异常

#!/usr/bin/env python3

try:

1/0

print('Try block')

except ZeroDivisionError:

print('Exception caught')

print('Finish')

【代码说明】

· 1/0执行会产生“被零除错误” (ZeroDivisionError)异常;

·如果不做任何处理,程序会崩溃并打印错误信息;

· 用 try-except结构捕获ZeroDivisionError异常后程序不会崩溃,而是在触发异常后 跳转执行except语句块;

· 3条print语句中,第1条不会被执行,第2条和第3条会被执行。

【程序运行结果】

s ./divide.py

Exception catched

finish

raise 关键字用于主动触发异常,程序代码1.33有相同的执行结果。 代码1.33 divide.py 主动触发 ZeroDivisionError异常

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《Python3快速入门与实战》_系统全面带领你学会Python_2.7.3 字符串内置方法
下一篇:《Python3快速入门与实战》_系统全面带领你学会Python_3.1.3 嵌套列表
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×