- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
单元8异常处理结构与程序调试
——基本概念;简单地说,异常是指程序运行时引发的错误,引发错误的原因有很多,例如除零、下标越界、文件不存在、网络异常、类型错误、名字错误、字典键错误、磁盘空间不足,等等。
如果这些错误得不到正确的处理将会导致程序终止运行,而合理地使用异常处理结构可以使得程序更加健壮,具有更强的容错性,不会因为用户不小心的错误输入或其他运行时原因而造成程序终止。
也可以使用异常处理结构为用户提供更加友好的提示。
程序出现异常或错误之后是否能够调试程序并快速定位和解决存在的问题也是程序员综合水平和能力的重要体现方式之一。;异常的常见表现形式
x,y=10,5
a=x/y
A
Traceback(mostrecentcalllast):
Filepyshell#35,line1,inmodule
A
NameError:nameAisnotdefined
10*(1/0)
Traceback(mostrecentcalllast):
Filepyshell#39,line1,inmodule
10*(1/0)
ZeroDivisionError:divisionbyzero;4+spam*3
Traceback(mostrecentcalllast):
Filestdin,line1,in?
NameError:namespamisnotdefined
2+2
Traceback(mostrecentcalllast):
Filestdin,line1,in?
TypeError:Cantconvertintobjecttostrimplicitly
fp=open(123.data,rb)
Traceback(mostrecentcalllast):
Filepyshell#2,line1,inmodule
fp=open(123.data,rb)
FileNotFoundError:[Errno2]Nosuchfileordirectory:123.data;语法错误和逻辑错误不属于异常,但有些语法错误往往会导致异常,例如由于大小写拼写错误而访问不存在的对象。
异常是指因为程序出错而在正常控制流以外采取的行为。当Python检测到一个错误时,解释器就会指出当前流已无法继续执行下去,这时候就出现了异常。
异常分为两个阶段:第一个阶段是引起异常发生的错误;第二个阶段是检测并处理阶段。
当程序出现错误,python会自动引发异常,也可以通过raise显式地引发异常。;异常处理的作用
提高程序的健壮性和容错性
把晦涩难懂的错误提示转换为友好提示显示给最终用户;既然这么神奇,那么是不是可以把所有代码都放到一个异常处理结构中呢?
try:
全部代码
except:
异常处理代码
;或者可不可以为每条语句都配上异常处理结构呢,反正也没啥坏处,不是吗?
...
try:
print(ok)
except:
pass
...;注意
不建议使用异常来代替常规的检查,如if...else判断。
应避免过多使用异常处理机制,只在确实需要时才使用。
捕捉异常时,应尽量精准,并针对不同类型的异常设计不同的处理代码。;谢谢!
文档评论(0)