DAY 29 异常处理

前言:

在后续深度学习项目通常运行时间长、资源消耗大, 一个错误可能导致数小时甚至数天的训练中断, 异常处理机制就像安全网,确保程序出错时能:

  • 保存当前进度

  • 记录错误信息

  • 优雅恢复或终止

一、常见的异常

SyntaxError (语法错误)

NameError (名称错误)

TypeError (类型错误)

ValueError (值错误)

IndexError (索引错误)

KeyError (键错误)

AttributeError (属性错误)

ZeroDivisionError (除零错误)

FileNotFoundError (文件未找到错误)

ModuleNotFoundError (导入错误)

二、try - except- else -fiinally

try: 包含可能引发异常的代码。

except: 处理在 try 块中发生的特定异常。

else: (可选)如果 try 块中没有发生任何异常,则执行此代码块。

finally: (可选)无论 try 块中是否发生异常,总会执行此代码块。

代码示例:

python 复制代码
print("--- try-except-else-finally 完整示例 ---")

def safe_divide(a, b):
    print(f"\n尝试计算 {a} / {b}")
    try:
        result = a / b
    except ZeroDivisionError:
        print("错误:除数不能为零!")
        return None
    except TypeError:
        print("错误:输入必须是数字!")
        return None
    else:
        # 只有当 try 块中的 a / b 成功执行时,这里才会执行
        print("除法运算成功!")
        print(f"结果是: {result}")
        print(f"结果的两倍是: {result * 2}")
        return result
    finally:
        # 无论是否发生异常,都会执行的部分
        print("【finally】计算过程结束,正在清理...")
        print("=" * 40)

# 测试用例
safe_divide(10, 2)   # 成功
safe_divide(10, 0)   # ZeroDivisionError
safe_divide("10", 2)  # TypeError
safe_divide(20, "abc")  # TypeError

@浙大疏锦行

相关推荐
cxhello7 分钟前
消费者活着、心跳正常、日志干净,但它七天没拉过一条消息
python·kafka
砚底藏山河9 分钟前
【量化纯GET实战 #11】移动均线 MA:5 日 20 日 60 日怎么算怎么用
java·python·金融·maven
小吴学不废Java13 分钟前
Python 基础语法
开发语言·python
weixin_4334176714 分钟前
阿里视频大模型wan2.7‑t2v,可以生成视频
人工智能·python·音视频
sukioe28 分钟前
一张图、两把锁:AI 物流履约平台的确定性边界设计
人工智能·python·ai·langchain
2601_9622035143 分钟前
【SpringBoot3】面向切面 AspectJ AOP 使用详解
开发语言·前端·python
程序员大雄学编程1 小时前
微积分43. 无穷积分入门:从概念到Python实战可视化
开发语言·python·学习·微积分
测试老哥1 小时前
Postman获取token并设置token依赖步骤
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
郝学胜-神的一滴1 小时前
C++11 工程级应用 06:自己造一个类似Python的Range迭代器
开发语言·c++·windows·python·程序人生·microsoft
满怀冰雪1 小时前
23-PaddleClas 数据集、配置文件与训练参数详解
人工智能·python·深度学习·paddlepaddle