• python学习——异常



    对于有可能会出错的代码,我们可以对这行代码进行异常捕获
    try-except:
    try-except--else:
    try-except--else--finally:

    import random
    
    try:
        # 对于有可能会出错的代码,我们可以对这行代码进行异常捕获
        price = float(input("请输入橘子价格:"))
    except:
        # try里面的代码,出现了异常执行except中的代码
        print("输入价格的代码出错了")
    else:
        # try里面的代码没有出现异常的时候执行else的代码
        n = random.randint(1, 100)
        sum_price = price * n
        print("您购买的橘子为{:.2f}斤,每斤{:.2f}元,应支付金额为{:.2f}".format(n, price, sum_price))
    finally:
        # 不管try的代码是否出现异常,都会执行
        print("这个是finally中的代码")
    # 捕获一个指定类型的异常
    try:
        n = int(input("请输入一个数值:"))
        print(n1)
    except NameError as e:
        print("代码出错啦")
        print("当前出错的原因:",e)
    
    
    # 捕获多个异常类型,
    # 方式一:使用多个except(不同的异常类型,做不同的处理)
    try:
        n = int(input("请输入一个数值:"))
        print(n1)
    except NameError as e:
        print("代出现了namerror")
        print("当前出错的原因:", e)
    except ValueError as e:
        print("代出现了valueerror")
        print("当前出错的原因:", e)
    
    
    # 方式二:一个except(不同的异常类型,做相同的处理)
    try:
        n = int(input("请输入一个数值:"))
        print(n1)
    except (NameError,ValueError,KeyError) as e:
        print("代码出错")
        print("当前出错的原因:", e)
    
    
    # 捕获不确定的异常类型,可以直接捕获常见异常类型的父类
    try:
        import requests
        requests.get(url="www.baidu.com")
    except Exception as e:
        print(e)

     

    else的应用场景

    import os
    
    def copy_file(path):
        try:
            # 第一步:获取目标路径中所有的文件和目录
            file_list = os.listdir(path)
        except FileNotFoundError as e:
            print("你传入的路径不对,出现了错误,错误提示:{}".format(e))
        else:
            # 第二步:遍历文件,
            for item in file_list:
                # 获取该文件的路径
                file_path = os.path.join(path, item)
    
                # 第三步:判断是文件还是目录,是文件的话就进行copy
                if os.path.isfile(file_path):
                    # 打开文件,读取内容
                    with open(file_path, 'r', encoding='utf8') as f:
                        contnet = f.read()
    
                    # 在当前目录创建副本文件,写入内容
                    new_file = 'cp' + item
                    with open(new_file, 'w', encoding='utf8') as f:
                        f.write(contnet)
    
    copy_file("python")

     

    finally的应用

    import random
    
    try:
        # 对于有可能会出错的代码,我们可以对这行代码进行异常捕获
        price = float(input("请输入橘子价格:"))
    except NameError:
        # try里面的代码,出现了异常执行except中的代码
        print("输入价格的代码出错了")
    else:
        # try里面的代码没有出现异常的时候执行else的代码
        n = random.randint(1, 100)
        sum_price = price * n
        print("您购买的橘子为{:.2f}斤,每斤{:.2f}元,应支付金额为{:.2f}".format(n, price, sum_price))
    finally:
        # 不管try的代码是否出现异常,都会执行
        print("这个是finally中的代码")
    
    print("这个是finally之外的的代码")
    
    
    # 通过finally来关闭文件
    
    f = open("text.txt", "w",encoding="utf8")
    try:
        n = int(input("请输入数字"))
    except NameError:
        f.write("代码错误了")
    else:
        f.write("代码没有错误了")
    finally:
        print("finally执行了")
        f.close()

     

    raise:主动抛出异常



  • 相关阅读:
    20201206贪心法1总结
    20201105枚举课后总结
    【题解】P1057 传球游戏
    人生哲理100句整理
    [计蒜客]棋子等级 题解
    整式的乘法相关公式(随着后续学习持续更新)
    计算几何公式(随着后续学习持续更新)
    mybatis中foreach在不同场景下的使用整理
    Java导出Excel文件详解
    java单元测试
  • 原文地址:https://www.cnblogs.com/erchun/p/12380420.html
Copyright © 2020-2023  润新知