【Python】-- 异常(捕获指定异常、常见异常类型)

本文详细介绍了Python中异常的处理,包括基本语法、指定异常捕获、多个异常组合、通用异常处理、else和finally块,以及异常的传递性。通过实例演示了如何有效应对常见编程错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是异常?

程序运行的过程中出现了错误。

捕获异常?

提前在某处会发生异常的地方做好提前准备,当出现异常时有处理方法。


一、基本语法

try:可能发生错误的代码

except:如果出现异常要执行的代码

例:

try:
    f = open("d:1.txt","r",encoding="UTF-8")
except:
    print("出现异常")
    f = open("d:1.txt","w",encoding="UTF-8")

二、捕获指定的异常

常见异常类型

AssertionError    断言语句失败(assert 后的条件为假)

AttributeError    访问的对象属性不存在

ImportError    无法导入模块或者对象,主要是路径有误或名称错误    

IndentationError 代码没有正确对齐,主要是缩进错误

IndexError    下标索引超出序列范围

IOError        输入/输出异常,主要是无法打开文件

KeyError    访问字典里不存在的键

NameError     访问一个未声明的变量

OverflowError    数值运算超出最大限制

SyntaxError    python语法错误

TabError    Tab和空格混用

TypeError    不同类型数据之间的无效操作(传入对象类型与要求的不符合)

ValueError    传入无效的值,即使值的类型是正确的

ZeroDivisionError    除法运算中除数0 或者 取模运算中模数为0

例:

try:
    print(name)
except NameError as e:
    print("出现变量未定义异常")
    print(e)

结果:

出现变量未定义异常
name 'name' is not defined

三、捕获多个异常

使用元组方式。

例:

try:
    1/0
    # print(name)
except (NameError,ZeroDivisionError) as e:
    print("出现变量未定义或除以0的异常")
    print(e)

结果:

出现变量未定义或除以0的异常
division by zero

四、捕获所有异常

例:

try:
    print(name)
except Exception as e:
    print("出现异常")
    print(e)

五、异常else

else表示如果没有异常要执行的代码。

例:

try:
    print(1)
except Exception as e:
    print(e)
else:
    print("没有异常")

六、异常finally

finally表示无论是否异常都要执行的代码,如关闭文件。

例:

try:
    f = open("d:1.txt","r")
except Exception as e:
    f = open("d:1.txt","w")
else:
    print("没有异常")
finally:
    f.close()

七、异常的传递性

当所有函数都没有捕获异常的时候,程序会报错。

例:

def fun1():
    num = 1/0
def fun2():
    fun1()
def main():
    try:
        fun2()
    except Exception as e:
        print(f"出现异常,信息:{e}")
main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

四月天行健

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值