python的异常处理


Python的异常处理机制允许你在程序运行时捕获和处理错误。这对于提高程序的健壮性和用户体验至关重要。Python 使用 try 和 except 语句来捕获和处理异常。你还可以使用 else 和 finally 子句来提供额外的错误处理代码。
Python中的错误可以分为两种:语法错误和异常

  • 语法错误(Syntax errors) :代码编译时的错误,不符合Python语言规则的代码会停止编译并返回 错误信息
  • 异常(Exceptions) :相较于语法错误,异常比较难发现,因为它只在代码运行时才会发生, 如类型错误、数值错误、索引错误和属性错误等
    Python异常类层级

在这里插入图片描述
Python中的主要错误
在这里插入图片描述

语法错误(SyntaxError)

缺少起始符号或结尾符号(括号、引号等)
在这里插入图片描述
缩进错误

series = [1,2,3,4]
for num in series:
    print(num)
     print(num)
#输出结果:
#  File "F:\code\day007.py", line 4
#    print(num)
#IndentationError: unexpected indent

关键词拼写错误

num = 3
prit(num)
#输出结果
#  File "F:\code\day007.py", line 247, in <module>
#    prit(num)
#NameError: name 'prit' is not defined

六种典型的异常

  • 除零错误(ZeroDivisionError):除数为0
  • 名称错误(NameError):变量使用前未进行申明或者初始化
  • 类型错误(TypeError):某些函数或者方法只适用于特定的数据类型,如果 对数据类型的操作不当,就会产生类型错误
  • 数值错误(ValueError):在输入类型正确的情况下,具体输入值错误
  • 索引错误(IndexError):超出序列长度的索引操作
  • 属性错误(AttributeError):方法或者属性不适用该对象

捕获异常

  • 高级语言通常都内置了一套错误处理机制,Python也不例外
  • 在Python中可通过try…except…else…finally…机制捕获异常并进行处理
    在这里插入图片描述
    try…except…else…工作原理
    在这里插入图片描述
    finally子句:无论程序运行对或错,都会执行的部分
    在这里插入图片描述

抛出异常

li1 = [231, 245, -355, 152, 64, 353]
for i in li1:
    v = 100 / i
    print(v)
    if v < 0:
        # 抛出异常
        raise Exception("这里有问题")
    pass
#输出结果:
#  File "F:\code\day007.py", line 175, in <module>
#    raise Exception("这里有问题")
#Exception: 这里有问题
#0.4329004329004329
#0.40816326530612246
#-0.28169014084507044

用户自定义异常

  • 在Python中可以通过创建一个新的异常类来拥有自己的异常

  • 自定义异常的原因
    1.Python提供的内建异常不够用
    2.可以预估某个错误的产生

  • 定义异常类
    异常类继承自 Exception 类,可以直接继承,或者间接继承

class MyError(Exception):
    pass
raise MyError("something error")
#  File "F:\code\day007.py", line 147, in <module>
#    raise MyError("something error")
#__main__.MyError: something error
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值