异常处理

语法

try:
    '1'+'2'
    1/0
except TypeError as e:#数据类型问题
    print(e)
except ZeroDivisionError as e:#除数不能为零
    print('除数不能为零',e)
except IndexError as e:#下标越界
    print('下标错误')
except KeyError:#找不到字典的key
    print('找不到字典的key')
except FileNotFoundError:#文件打不开
    print('文件打不开')
except Exception as e:#所有异常均可以用Exception
    print('出异常了',e)
else:#没有出异常,走else下的代码(没有异常的情况下,try里面的代码也是被执行了的)
    print('没异常')
finally: #不管有没有异常,都要执行finally里的代码
    print('aaa')

try…except…

f = open('xxx','w')
try:
    f.write()
except: #只要出错就走except
    print('走这块')
else:#没有出异常,走else下的代码
    print('xxx')
finally:#不管写文件操作对不对,最后都要关闭文件
    f.close()

可以打印出日志里红色报错信息/日志方式输出报错信息

import traceback

def is_price(s):
    try:
        f = float(s)
    except Exception as e:
        # traceback.print_exc() #直接打印日志里红色的报错信息
        print('zijijiade .....',traceback.format_exc()) #traceback.format_exc()拿到报错信息,可以写到日志里
        return False
    else:
        if f>0:
            return True

异常处理的特殊用法:可以充当if…else 使用
例如:

        try:
            result = self.req.json() #将某个请求返回结果转换为json
        except Exception as e:
            return self.req.text #如果不能转换为json,就转换为文本
        else:
            result = NbDict(result)#如果没有异常,json解析成功了,那就把返回结果转换为字典
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值