欢迎来到天天文库
浏览记录
ID:57383825
大小:145.62 KB
页数:33页
时间:2020-08-14
《Python8-异常处理结构与程序调试课件.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章异常处理结构与程序调试异常(exception)简单地说,异常是指程序运行时引发的错误。引发错误的原因有很多,例如除零、下标越界、文件不存在、网络异常、类型错误、名字错误、字典键错误、磁盘空间不足,等等。如果这些错误得不到正确的处理将会导致程序终止运行合理地使用异常处理结果可以使得程序更加健壮,具有更强的容错性,不会因为用户不小心的错误输入或其他运行时原因而造成程序终止。也可以使用异常处理结构为用户提供更加友好的提示。程序出现异常或错误之后是否能够调试程序并快速定位和解决存在的问题也是程序员综合水平和能力的重要体现方式之一。8.1什么是异常语法错误和逻辑错误不
2、属于异常(运行时错误),但有些语法错误往往会导致异常,例如由于大小写拼写错误而访问不存在的对象。当Python检测到一个错误时,解释器就会指出当前流已无法继续执行下去,这时候就出现了异常。异常是指因为程序出错而在正常控制流以外采取的行为。异常分为两个阶段:第一个阶段是引起异常发生的错误;第二个阶段是检测并处理阶段。不建议使用异常来代替常规的检查,如if...else判断。应避免过多依赖于异常处理机制。当程序出现错误,python会自动引发异常,也可以通过raise显式地引发异常。8.2Python中的异常类下面列出了常用的异常类抛出异常raise语句主动抛出异常定义
3、自己的异常类时;或者需要抛出异常时。raise语法expression:必须是一个异常类,或异常类的实例对象;如果为一个异常类,则相当于首先创建一个该类的实例,然后抛出该异常对象fromexpression2:给出了将两个异常连接起来的方法,表示异常是由于另一个expression2引起的。raise[expression[fromexpression2]]raiseExceptionraiseException('foooccurred!')raiseException('foooccurred!')fromException('anothererroroccur
4、ed!')自定义异常类下面的例子演示了自定义的异常类必须继承Exception类或者其子类:Exception为所有异常类的基类;classMyError(Exception):def__init__(self,value):self.value=valuedef__str__(self):returnrepr(self.value)try:raiseMyError(2*2)exceptMyErrorase:print('Myexceptionoccurred',e)raiseMyexceptionoccurred4Traceback(mostrecentcalll
5、ast):File"C:/Users/dlmao/PycharmProjects/pythonClass/exception_demo.py",line14,inraiseMyError(2*2)MyError:48.3Python中的异常处理结构第一种方式没有except块执行代码不管有没有异常执行finally块第二种方式至少有except块,else和finally可选expression应该为异常类或者异常类的元组,表示其中任一异常出现try:finally:try:except[
6、expression[asidentifier]]:#至少一次,在多次出现时不带表达式except应该是最后一个。按序匹配找到对应的exception为止else:#可选的,在没有异常出现在前面的异常都没有出现时执行finally:#可选的,不管异常有没有都要执行8.3Python中的异常处理结构常见的异常处理结构try.......except结构try.......except.......else结构带有多个except的try结构try.......except.......fina
7、lly结构try:
此文档下载收益归作者所有