码迷,mamicode.com
首页 > 编程语言 > 详细

python学习——异常

时间:2020-02-28 22:54:49      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:err   random   第一步   dom   数字   request   for   目录   文件的   


对于有可能会出错的代码,我们可以对这行代码进行异常捕获
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:主动抛出异常



python学习——异常

标签:err   random   第一步   dom   数字   request   for   目录   文件的   

原文地址:https://www.cnblogs.com/erchun/p/12380420.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!