python打卡day25@浙大疏锦行

知识点回顾:

1.异常处理机制

2.debug过程中的各类报错

3.try-except机制

4.try-except-else-finally机制

在即将进入深度学习专题学习前,我们最后差缺补漏,把一些常见且重要的知识点给他们补上,加深对代码和流程的理解。

作业:理解今日的内容即可,可以检查自己过去借助ai写的代码是否带有try-except机制,以后可以尝试采用这类写法增加代码健壮性。

一、异常处理机制

复制代码
try:
    result = 10 / 0
except ZeroDivisionError as e:
    print(f"发生除零错误: {e}")
except Exception as e:
    print(f"未知错误: {e}")
else:
    print("计算成功")
finally:
    print("清理资源")

二、debug过程中的各类报错

复制代码
try:
    import non_existent_module  # ModuleNotFoundError
except ImportError as e:
    print(f"导入错误: {e}")

def bad_logic(x):
    return x + "2"  

try:
    bad_logic(10)
except TypeError as e:
    print(f"类型错误: {e}")

三、try-except机制

复制代码
def read_file(filename):
    try:
        with open(filename, 'r') as f:
            content = f.read()
        return content
    except FileNotFoundError:
        print(f"文件 {filename} 不存在")
    except PermissionError:
        print("没有读取权限")
    except UnicodeDecodeError:
        print("文件编码错误")

read_file("non_existent.txt")  
read_file("/root/.bashrc")     
read_file("binary_file.bin")   

四、try-except-else-finally机制

复制代码
def process_transaction(amount):
    balance = 1000
    try:
        if amount < 0:
            raise ValueError("金额不能为负数")  
        new_balance = balance - amount
    except ValueError as e:
        print(f"交易失败: {e}")
    except TypeError:
        print("错误:金额类型无效")
    else:
        print(f"交易成功,新余额: {new_balance}")
        return new_balance
    finally:
        print("记录交易日志到数据库")

process_transaction(500)  
process_transaction(-100)  
process_transaction("abc") 

关键点总结

  1. 异常类型匹配except 块按顺序匹配异常类型

  2. 异常层级Exception 是所有内置异常的基类

  3. 主动抛出异常 :使用 raise 手动触发异常

  4. 资源清理finally 块适合做资源释放操作

  5. 错误隔离 :将可能出错的代码尽量缩小在 try 块中

相关推荐
喜欢喝果茶.16 分钟前
QOverload<参数列表>::of(&函数名)信号槽
开发语言·qt
亓才孓16 分钟前
[Class类的应用]反射的理解
开发语言·python
努力学编程呀(๑•ี_เ•ี๑)16 分钟前
【在 IntelliJ IDEA 中切换项目 JDK 版本】
java·开发语言·intellij-idea
小镇敲码人25 分钟前
深入剖析华为CANN框架下的Ops-CV仓库:从入门到实战指南
c++·python·华为·cann
island131438 分钟前
CANN GE(图引擎)深度解析:计算图优化管线、内存静态规划与异构任务的 Stream 调度机制
开发语言·人工智能·深度学习·神经网络
坚持就完事了42 分钟前
Java中的集合
java·开发语言
摘星编程1 小时前
深入理解CANN ops-nn BatchNormalization算子:训练加速的关键技术
python
魔芋红茶1 小时前
Python 项目版本控制
开发语言·python
lili-felicity1 小时前
CANN批处理优化技巧:从动态批处理到流水线并行
人工智能·python
一个有梦有戏的人1 小时前
Python3基础:进阶基础,筑牢编程底层能力
后端·python