L7-2 异常处理
Posted xiaoxiao-ya
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了L7-2 异常处理相关的知识,希望对你有一定的参考价值。
一、课堂导入
上节课我们学习了文件操作的文本处理,知晓了如何打开、关闭文件,本节课我们将学习处理操作中的问题。
二、异常处理
我们在编写程序时,有时候会踩很多的坑,我们时长是在写bug与改bug的路上。为了减少bug的产生,本节课我们要开始学习制造bug后的修复操作。
1.什么是异常
异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止),在python中,错误触发的异常如下
2.异常的种类
# AttributeError:尝试访问的对象不存在,比如foo.x,但是foo没有属性x # IndexError:尝试访问的索引值超出系列范围,,比如当x只有三个元素,却试图访问x[5] # KeyError:试图访问字典里不存在的键 # NameError:尝试要访问的变量不存在 # SyntaxError:Python代码非法,代码不能编译(没有按照语法要求来写) # TypeError:传入对象类型与要求的不符合(对不同的数据类型进行操作出错) # ZeroDivisionError:除数不能为0,除0会报错 # FileNotFoundError:使用文件,找不到文件
3.处理异常
主要分为三种方式:
3.1 如果错误发生的条件是不可预知的,则需要用到try...except:在错误发生之后进行处理
try-except语句检测try语句 块中的错误,让except语句 捕获异常并处理
#基本语法为 try: 被检测的代码块 except 异常类型: try中一旦检测到异常,就执行这个位置的逻辑 #举例 try: dic={"name":"Rita","age":17} del dic["sex"] except KeyError: print("所要删除的键不存在")
3.2 try-finally 语句无论 是否发生异常都将 执行最后的代码
# 基本语法 try: 被检测的代码块 finally: try 中检测的异常 try: fh=open("homework.txt","w") fh.write("我的作业写完了") sum=1+"1" finally: fh.close() print("Erro:没有找到文件或读取文件失败")
3.3 try-except-else 如果有异常,执行except语句,如果没有异常执行else语句
try: f=open("homework.txt","w",encoding="utf-8") f.write("我的作业可算写完了") except FileNotFoundError: print("Error:没有找到文件或读取文件失败") else: print("内容写入文件成功") f.close()
三. 实践
简单的除法计算器
需求:程序要能处理无效的输入,例如当输入的除数是0的时候,提示除数不能为0。
print("请输入两个数,让他门进行比较:") while True: first_num=int(input("请输入第一个数字:")) if first_num=="q": break second_num=int(input("请输入第二个数字:")) try: answer=int(first_num)/int(second_num) except ZeroDivisionError: print("除数不能为0") else: print(answer)
四、总结
# 1.一般情况下,在Python无法正常处理程序时就会发生一个异常。 # 2.当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。 # 3.在Python中用try-except语句、try-finally语句、else语句处理异常。
以上是关于L7-2 异常处理的主要内容,如果未能解决你的问题,请参考以下文章
PCL异常处理:pcl 1.8.13rdpartyoostincludeoost-1_64oost ypeofmsvc ypeof_impl.hpp(125): error(代码片段
java.util.MissingResourceException: Can't find bundle for base name init, locale zh_CN问题的处理(代码片段