打开《Python入门与实战》_一步步学会Python_8.4.2 案例解析
148
2023-10-19
【摘要】 本书摘自《Python编程从0到1 视频教学版》一书中第1章,第10节,作者是张頔。
1.10 异常处理
程序的执行会遇到意外情况,由于程序执行导致的运行错误被称为“异常”
(exception)。 在产生异常时,正常执行流程会被打断,转而执行某种预先设定的行为。
程序员经常会写出不正确的代码。这些代码有时会导致程序运行错误,这种情况也会 产生异常,往往导致程序崩溃,甚至引发重大事故。有时程序会在执行错误代码后继续运 行很久,这种情况会使程序更加难以调试,并且会出现奇怪的错误问题。
说明: 引起重大事故的错误根源是多方面的(比如安全意识淡薄、安全投入不足、管理制度不完善等),但在信息时代往往是由于错误的软件设计引起的。“
异常处理机制是用以解耦正常代码和错误处理代码的流程控制手段。使用异常处理结 构,程序员可以更清晰地构建健壮的程序。在不同的程序设计语言中,异常处理的重要性 也有所不同。在Python中,异常机制无处不在,不使用异常处理就无法写出健壮的 Python 程序(很多 Python 函数表示错误的唯一方式是异常)。
本节将使用1.8.5节的逆波兰表达式计算程序作为示例,演示部分异常处理手段。如 果读者跳过了1.8.5节的内容或对该节的内容理解不够清晰,建议再次阅读该节内容。
【学习目标】
· 了解Python的异常处理语法;● 了解异常处理的执行流程;
· 了解各种异常类型。
1.10.1 基本语法
Python 异常处理的基本语法如图1.64所示。
try:
正常执行代码
异常种类
异常处理代码
图1.64 异常处理的基本语法
try 关键字跟随的语句块是程序的正常执行逻辑。当产生代码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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~