当前位置: 首页 > news >正文

常见异常处理及程序调试方法

😀前言
本篇博文是常见的异常处理方式和调试方法,希望你能够喜欢

🏠个人主页:晨犀主页
🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在此感谢啦😊

文章目录

  • 异常处理及程序调试
      • 1. Python 中常见的异常类型
      • 2. `try...except` 语句
      • 3. `try...except...finally` 语句
      • 4. 使用 `raise` 语句抛出异常
      • 5. 使用 `assert` 语句调试程序
    • 😄总结

异常处理及程序调试

在 Python 中,异常处理与程序调试是确保代码健壮性和稳定性的重要环节。通过合理的异常处理机制,我们可以有效捕获和处理意外错误,防止程序崩溃,并在调试时提供有用的信息。以下是常见的异常处理方式和调试方法。

1. Python 中常见的异常类型

Python 中常见的异常有很多,例如 ValueError(数值错误)、TypeError(类型错误)、IndexError(索引超出范围)、KeyError(字典中找不到指定键)等。以下是一些常见异常的示例:

image-20241025134043728

2. try...except 语句

Python 使用 try...except 语句捕获并处理异常,防止程序因错误而崩溃。基本的语法如下:

try:# 可能会出错的代码block1
except ExceptionName as alias:# 捕获指定异常并进行处理block2

参数说明:

  • block1:表示可能引发异常的代码块。
  • ExceptionName as alias:可选参数,用于捕获特定类型的异常,并为该异常指定一个别名 alias,通过该别名可以访问异常信息。

示例:

try:result = 10 / 0
except ZeroDivisionError as e:print("除数不能为零:", e)

3. try...except...finally 语句

try...except 的基础上,Python 提供了 finally 子句,用于在程序的异常处理完成后执行某些必要操作。例如,关闭文件、释放资源等。finally 块中的代码无论是否出现异常都会执行。

基本语法:

try:block1
except ExceptionName as alias:block2
finally:block3  # 始终执行的代码块

示例:

try:file = open("data.txt", "r")content = file.read()
except FileNotFoundError:print("文件未找到")
finally:file.close()print("文件已关闭")

4. 使用 raise 语句抛出异常

raise 语句用于在代码中主动引发一个异常。适用于希望将错误提示或异常传递给调用者的情况。例如,在函数中检测到某个条件未满足时,可以抛出异常以通知调用者。

基本语法:

raise ExceptionName("错误描述")

示例:

def check_age(age):if age < 0:raise ValueError("年龄不能为负数")return agetry:check_age(-5)
except ValueError as e:print("捕获到异常:", e)

5. 使用 assert 语句调试程序

assert 语句用于在开发和测试阶段的快速调试。当表达式为假时,assert 会引发 AssertionError 异常。它适用于检查某些条件是否满足。

基本语法:

assert expression, reason

参数说明:

  • expression:条件表达式,若结果为真,则不做任何处理;若为假,则引发 AssertionError
  • reason:可选参数,为触发异常提供描述性信息。

示例:

def divide(a, b):assert b != 0, "除数不能为零"return a / b# 触发 AssertionError
divide(10, 0)

😄总结

Python 提供了多种异常处理和调试方式,通过 try...except 语句捕获异常,finally 保证关键代码执行,raise 主动引发异常,以及 assert 断言检查,有助于在编码和调试过程中提升代码的可靠性和维护性。这些异常处理方法帮助我们在遇到错误时更好地理解和解决问题,同时确保系统的稳定性。

文章到这里就结束了,如果有什么疑问的地方请指出,诸大佬们一起来评论区一起讨论😁
希望能和诸大佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞


http://www.mrgr.cn/news/58431.html

相关文章:

  • Linux 共享内存
  • Chromium127调试指南 Windows篇 - 安装VS Code扩展(四)
  • 无需多言,简单粗暴上手MybatisPlus
  • SAM:Segment Anything
  • GD32E50x 三路CANFD配置
  • OpenAI低调发布多智能体工具Swarm:让多个智能体协同工作!
  • 数据流与重定向
  • fastjson/jackson对getter,setter和constructor的区分
  • 代码随想录算法训练营第四十三天|322. 零钱兑换, 279. 完全平方数,139. 单词拆分
  • 揭秘!亿赛通和Ping32如何以加密技术筑牢防泄密防线?
  • MTK使用atms获取app包名编译报错
  • qss设置Q_PROPERTY不生效
  • 从零搭建Lazada自养号高效测评体系
  • 社交媒体与客户服务:新时代的沟通桥梁
  • vue2项目 上传文件时部分信息上传失败,并下载失败信息(.xlsx文件模板)
  • 什么是域名?什么是泛域名?
  • 多线程加锁与手搓智能指针实践
  • 深入拆解TomcatJetty——Tomcat如何实现IO多路复用
  • 获取每个访客的第一条访问日志(获取网站的UV)
  • 「 自动化测试 」面试题..
  • 请简述同步和异步的区别。
  • 【嵌入式】全面解析温度传感器:PT1000、热电偶、热敏电阻与红外传感器的原理与应用
  • 【密码学】隐语HEU同态加密算法解读
  • 5G NR NARFCN计算SSB中心频率MATLAB实现
  • 『 Linux 』网络传输层 - UDP
  • Python自动化测试+邮件推送+企业微信推送+Jenkins