自定义异常与错误日志记录

文章顶部广告位
728×90 或 336×280

一、引言

本章介绍自定义异常和日志记录的最佳实践!非常实用!

💡 自定义异常让错误更清晰,logging 比 print 更专业!

二、自定义异常

# 自定义异常类,继承自 Exception
class AgeError(Exception):
    """年龄相关的错误"""
    pass

def register(name, age):
    if age < 0 or age > 150:
        raise AgeError(f"年龄 {age} 不合法!")
    print(f"注册成功:{name}, {age}岁")

try:
    register("小明", -5)
except AgeError as e:
    print(f"注册失败:{e}")

三、logging 模块(比 print 好用)

import logging

# 配置日志(只需要配置一次)
logging.basicConfig(
    level=logging.DEBUG,  # 日志级别
    format='%(asctime)s - %(levelname)s - %(message)s',  # 格式
    filename='app.log',  # 输出到文件
    filemode='w'  # 写入模式,w 覆盖,a 追加
)

# 不同级别的日志
logging.debug("调试信息")
logging.info("普通信息")
logging.warning("警告信息")
logging.error("错误信息")
logging.critical("严重错误")

四、异常处理最佳实践

# ✅ 好的做法:
# 1. 捕获具体异常,不要裸 except
# 2. 提供有意义的错误信息
# 3. 不要默默忽略异常
# 4. 使用 logging 记录日志
# 5. 善用 finally 或 with 清理资源

# ❌ 不好的做法:
try:
    something()
except:  # 裸 except!
    pass  # 默默忽略!

总结

通过本章学习,你应该已经掌握了「自定义异常与错误日志记录」的相关知识。

🎉 恭喜!所有 9 个模块、40 篇文章都学习完了!继续加油!

文章中间广告位
600×300 或 300×250
← 上一篇 返回首页
文章底部广告位
728×90 或 300×250