python入门超easy系列(九)——— python中的错误和异常处理

自从学会异常处理,麻麻再也不用担心我找不到BUG了呢?

众所周知,python是世界上入门最简单的语言!?——周某人


声明

今天的内容比较少,但绝对不是水贴,水贴我这辈子养不起猫?


相关概念

  • 错误:程序运行之前的语法问题,如:关键字出错、缩进不齐、括号不成对等
  • 异常:程序运行过程中出现的问题,如:除数为0,对象属性不存在,字典的键不存在,下标越界

异常处理

  • 说明:异常处理可以理解为特殊的流程控制语句,可以提高代码的健壮性

  • 语法:

    try:
        print('正常代码')
        a = 3 / 0
        print('执行结束')
    except Exception as e:
        # 捕获异常,可以做出异常处理
        print('出现异常', e)
    
    print('OVER')
    

多异常处理

# try:
#     # print(a)
#     # a = 3/0
#     d = {}
#     print(d['name'])
# except NameError as e:
#     print('NameError:', e)
# except ZeroDivisionError as e:
#     print('ZeroDivisionError:', e)
# except Exception as e:
#     print('Othre error:', e)

try:
    # print(a)
    # a = 3 / 0
    d = [1, 2, 3]
    print(d[4])
except (NameError, ZeroDivisionError) as e:
    # 将某些异常放在一起进行统一处理
    print('name or zero:', e)
except Exception as e:
    print('其他异常')
多异常处理完整写法:
try:
    print('正常代码')
    print(a)
except Exception as e:
    print('出现异常', e)
else:
    # 没有异常时会执行
    print('正常结束')
finally:
    # 无论有无异常都会执行
    print('最后执行')

print('OVER')

手动抛出异常

try:
    print('正常执行')
    # 根据业务逻辑分析,手动抛出异常
    raise Exception('手动抛出的异常')
    print('执行结束')
except Exception as e:
    print('出现异常:', e)

print('OVER')

异常嵌套

print('我要去上班,什么事也阻止不了我上班的脚步')
try:
    print('我准备骑电动车去上班')
    raise Exception('不知道那个缺德的家伙把我充电器拔掉了')
    print('骑电动车提前到达公司')
except Exception as e:
    print('电车异常:', e)
    try:
        print('我准备坐公交去上班')
        raise Exception('等了20分钟没有公交车,果断放弃')
        print('乘坐公交准时到达公司')
    except Exception as e:
        print('公交异常:', e)
        print('我准备打车去公司')
        print('打车还是快,还是能够提前到达公司')

print('热情饱满的开始一天的工作')

自定义异常类:

# 自定义异常类
class MyException(Exception):
    def __init__(self, msg):
        self.msg = msg

    def __str__(self):
        return 'MyException:' + self.msg

    # 异常处理函数
    def deal(self):
        print('按照特定的方案处理异常')

try:
    print('正常运行')
    raise MyException('自定义异常')
except MyException as e:
    print(e)
    # 特定的处理方案
    e.deal()
except Exception as e:
    print('Exception', e)

print('OVER')

特殊场景

  • 当进行文件操作时,无论过程是否出现异常,最后一定要关闭文件

  • 使用with语句,保证文件关闭,无论中间是否出现异常

  • 示例:

    fp = open('xx.txt', 'r')
    content = fp.read(1024)
    print(content)
    # ...
    # 最后一定要关闭文件
    fp.close()
    
    with open('00-text.txt', 'r') as fp:
        content = fp.read(1024)
        # ...
        # 结束时不需要考虑文件的关闭问题
        # 无论中间是否出现了异常,一定会确保文件关闭
    

总结

本篇内容不大多,在初学阶段异常处理也不常用到,在不接触链接数据库等情况,一般的报错是可以直接找出问题并且快速解决的,这一篇大概了解一下什么是异常以及如何处理异常即可。


下期预告:下一期简单介绍正则表达式,正则表达式作为爬虫入门的基础可是相当重要的呢
Tips:如有疑问欢迎随时打扰 ???

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值