Python——异常处理

作者: 勤快的树懒 | 来源:发表于2017-07-28 22:10 被阅读19次

    面向对象编程思想

    • 面向对象:一种编程思想,将数据封装到对象的内部,通过对象的方法操作数据,通过对象和对象之间的相互调用配合完成整个功能的过程。

    • 面向对象的特征:封装、继承、多态

    • 面向对象:站在对象的角度看问题

    异状概述

    • 异常:就是不正常的情况,程序开发中错误和BUG都是补充正常的情况

    • 异常发生的状况:引发程序崩溃

    • 处理异常(容错):包容出现的不正常的错误,保存程序的正常执行

    处理异常的方法

    • tey-except:异常捕获处理
    • assertions:断言测试

    基本语法:

    代码如下:

    print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~")
    print("\t\t计算器系统")
    print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~")
    num_str = input("请输入要计算的数值:")
    try:
        num_int = int(num_str) #ValueError
    except ValueError as e:# 不指定要处理的具体异常,意味这可以处理所有可能出现的异常!
        print("不好意思,您输入了非法数据,%s" % e)
    else:
        print("用户输入了第一个数据:%d" % num_int)
    
    

    try:
    可能出现异常的代码

    except<异常名称>:
    一旦出现异常执行的代码

    else:
    没有异常时执行的代码

    finally:
    不论是否有异常都执行的代码

    异常处理步骤:

    暴露异常:让错误充分暴露出来
    定位异常:定位错误出现的位置
    处理异常:try包含,except处理

    常见的异常:

    • 所有异常的超类:BaseException
    • 常规错误的异常超类 Exception
    • 常见异类:
      - KeyboardInterrupt
      - ArithmeticError
      - FloatingPointError
      - AttributeError
      - EOFError
      - IndexError
      - SyntaxError
      -......

    处理异常——基础操作

    不捕获具体异常

    - try:
    -       可能出现异常的代码
    - except:
    -       出现异常之后要执行的代码
    

    捕获具体异常

    - try:
    -        可能出现异常的代码
    - except Exception as e:
    -         出现异常之后执行的代码
    

    处理多个异常

    代码如下:

    try:
        c = int(input("请输入您的选项:"))  #ValueError
        if c == 1:
            f = open("d:/test.txt") # FileNotFoundError
            print(f.read())
            f.close()
    except ValueError as e:
        print("选项输入错误:%s" % e)
    except FileNotFoundError as e:
        print("文件读取错误:%s" % e)
    except Exception as e:
        print("程序中出现了未知错误:%s" % e)
    
    
    print("程序执行完成..")
    
    

    except 捕获多个异常

    - try:
    -       可能出现异常的代码
    - except(Excp1 [,Excp2,Excp3,Excp4...Excpn]):
    
    -       上述任意异常出现之后要执行的代码
    

    多个except捕获异常

    - try:
    -      可能出现异常的代码
    - except Excp1:
    -       出现Excp1异常之后执行的代码
    - except Excp2:
    -       出现Excp2异常之后执行的代码
    
    

    抛出异常——转换异常

    程序执行出现标准异常
    
        try捕捉异常
    
            except转换自定义异常
    
                  raise 抛出[自定义异常]
    

    自定义异常

    # V2.0
    try:
        num = int(input("请输入一个数值:"))
    except ValueError: # 捕获系统异常
        raise NumError()
    else:
        print("用户输入了:%d" % num)
    
    print("程序执行完成")
    '''
    
    # 3.0
    # 定义了一个输入数值的函数:开发人员A开发的代码
    def inputNumber():
        try:
            num = int(input("请输入一个数值:"))
        except ValueError:  # 捕获系统异常
            raise NumError()
        else:
            print("用户输入了:%d" % num)
        return num
    
    # 开发人员B在开发的代码
    # 调用输入数值的方法
    try:
        num = inputNumber()
    except NumError as e:
        print("出现了异常信息:%s" % e)
    
    

    异常处理:else

    try

    • 捕获异常
    • 可能出现异常的代码

    except

    • 处理异常
    • 处理异常代码

    else

    • 正常操作
    • 无异常执行的代码

    异常处理:finally

    代码如下:

    try:
        f = open("d:/test.txt", "w")
        f.write(["a", "b"])
    except FileNotFoundError as e:
        print("文件操作失败")
    finally:
        f.close()
    
    
    - try
    -   except
    -    else
    - finally
    

    相关文章

      网友评论

        本文标题:Python——异常处理

        本文链接:https://www.haomeiwen.com/subject/cfpflxtx.html