《Python程序设计》课件——项目三 转换学生成绩 学生成绩转换中的异常处理.pptx
Python程序设计与应用学生成绩转换中的异常处理
房晓东主讲教师学生成绩转换中的异常处理尽可能地考虑实际应用时出现的问题仍难避免因不规范操作导致的运行错误
学生成绩转换中的异常处理导致程序因用户输入错误而崩溃使用while循环完成多个学生成绩转换任务Python输入成绩时按多了一个字母“a”
如何解决这一问题呢?提供异常处理语句控制捕获处理学生成绩转换中的异常处理
Python学习目标为什么要进行异常处理什么是异常如何处理异常通过相关内容的学习达成任务的实现异常的类型
为什么要进行异常处理
与业务逻辑有关,对程序的运行并无影响,但影响业务流程即所谓的“异常“,如果没有进行适当的处理,往往会造成程序崩溃而使运行终止逻辑错误运行时产生的错误为什么要进行异常处理编程时产生的错误会在程序解析时被指出程序语法错误
了解程序可能会出现异常的地方,并进行异常处理为什么要进行异常处理使程序更加健壮提高系统容错性
什么是异常
程序在执行过程中产生的错误称为异常。异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。什么是异常
异常的类型
异常名称描述异常名称描述BaseException所有异常的基类NameError未声明/初始化对象(没有属性)SystemExit解释器请求退出UnbundLocalError访问未初始化的本地变量Keyboardlnterrupt用户中断执行(通常是输入^C)RererenceError弱引用(Weakreference)试图访问已经垃圾回收了的对象Exception常规错误的基类RuntimeError一般的运行时错误Stoplteration迭代器没有更多的值NotlmplementedError尚未实现的方法GeneratorExit生成器(generator)发生异常来通知退出SyntaxErrorPython语法错误StandardError所有的内建标准异常的基类IndentationError缩进错误ArithrneticError所有数值计算错误的基类TabErrorTab和空格混用FloatingPointError浮点计算错误SystemError一般的解释器系统错误异常的类型
异常名称描述异常名称描述OverflowError数值运算超出最大限制TypeError对类型无效的操作ZeroDivisionError除(或取模)零(所有数据类型)ValueError传入无效的参数AssertionError断言语句失败UnicodeErrorUnicode相关的错误AttributeError对象没有这个属性UnicodeDecodeErrorUnicode解码时的错误EOFError没有内建输入,到达EOF标记UnicodeEncodeErrorUnicode编码时错误EnvironmentError操作系统错误的基类UnicodeTranslateErrorUnicode转换时错误IOError输入/输出操作失败Waming警告的基类OSError操作系统错误DeprecationWaming关于被弃用的特征的警告WindowsError系统调用失败FutureWaming关于构造将来语义会有改变的警告异常的类型
异常名称描述异常名称描述ImporError导入模块/对象失败OverflowWaming旧的关于自动提升为长整型(long)的警告LookupError无效数据查询的基类PendingDeprecation-Waming关于特性将会被废弃的警告InexError序列中没有此索引(index)RuntimeWaming可疑的运行时行为(runtimebehavion)的警告KeyError映射中没有这个键SyntaxWaming可疑的语法的警告MemoryError内在溢出错误(对于Python解释器不是致命的)UserWaming用户代码生成的警告异常的类型
如何处理异常
如何处理异常分支结构tryexcepttry/except语句用来检测try语句块中的错误except语句捕获异常信息并处理
程序可能会引发多个异常,如何处理呢?一个try语句后面可以接多个except语句,用于捕获多个异常。如何处理异常
通过相关内容的学习达成任务的实现
如果有时候不能准确的描述异常在except后面的代码中使用as获取系统反馈的错误信息通过相关内容的学习达成任务的实现
else语句如果使要用else语句,else必须放在except子句之后。finally语句如果要使用finally语句,finally语句必须放在最后。通过相关内容的学习达成任务的实现
e