异常处理及程序调试(Python)

一、常见异常

1.NameError —— 尝试访问一个没有声明的变量引发的错误

2.IndexError —— 索引超出序列范围引发的错误

3.IndentationError —— 缩进错误

4.ValueError —— 传入的值错误

5.KeyError —— 请求一个不存在的字典关键字引发的错误

6.IOError —— 输入输出错误(如要读取的文件不存在)

7.ImportError —— 当import语句无法找到模块或from无法在模块中找到相应的名称时引发的错误

8.AttributeError —— 尝试访问未知的对象属性引发的错误

9.TypeError —— 类型不合适引发的错误

10.MemoryError —— 内存不足

11.ZeroDivisionError —— 除数为0引发的错误

二、捕获并处理异常

(一)try...except

1.格式

try:

        block1

except Error :

        block2

2.参数说明

①block1:表示可能出现错误的代码块

②Error:捕获的异常名称

3.举例
try:
    b=int(input())
except ValueError:
    print("请重新输入阿拉伯数字!")
# 结果:
# 一
# 请重新输入阿拉伯数字!

(二)try...except...finally(block3是无论如何都要运行的语句)

1.格式

try:

        block1

 except error :

        block2

finally:

        block3

2.举例
try:
    b=int(input())
except ValueError:
    print("请重新输入阿拉伯数字!")
finally:
    print("该程序运行结束!")
# 结果:
#一
# 请重新输入阿拉伯数字!
# 该程序运行结束!

(三) 使用raise语句抛出异常

1.格式

raise Error (reason)

2.参数说明

①Error —— 异常名称

②reason —— 自述错误原因

3.举例
def f(a, b):
    if b == 0:
        raise ValueError("除数不能为零")
    return a / b

try:
    result = f(10, 0)
except ValueError as e:
    print(f"捕获异常: {e}")
# 结果:
# 捕获异常: 除数不能为零

三、assert语句调试程序 

1.格式

assert expression reason

2.参数说明

①expression:条件表达式,如为真,则什么都不做,为假,则抛出AssertionError异常

②reason:对判断条件描述

3.举例
def check_positive(number):
    assert number > 0, "数字必须为正数"
    print(f"数字 {number} 是正数")

check_positive(-5)  
# 结果:
# AssertionError: 数字必须为正数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值