zoukankan      html  css  js  c++  java
  • 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语句处理异常。
  • 相关阅读:
    三次请求(读-改-读)引出nibernate 一级缓存
    算法竞赛入门经典第一、二章摘记
    uva 10905 Children's Game
    uva 11205 The broken pedometer
    uva 10160 Servicing stations
    uva 208 Firetruck
    uva 167 The Sultan's Successors
    zoj 1016 Parencodings
    uva 307 Sticks
    uva 216 Getting in Line
  • 原文地址:https://www.cnblogs.com/xiaoxiao-ya/p/12093667.html
Copyright © 2011-2022 走看看