> 技术文档 > 【Python】异常处理:从基础到进阶

【Python】异常处理:从基础到进阶


🏠大家好,我是Yui_,目标成为全栈工程师~💬
🍑如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
🚀如有不懂,可以随时向我提问,我会全力讲解~
🔥如果感觉博主的文章还不错的话,希望大家关注、点赞、收藏三连支持一下博主哦~!
🔥你们的支持是我创作的动力!
🧸我相信现在的努力的艰辛,都是为以后的美好最好的见证!
🧸人的心态决定姿态!
💬欢迎讨论:如有疑问或见解,欢迎在评论区留言互动。
👍点赞、收藏与分享:如觉得这篇文章对您有帮助,请点赞、收藏并分享!
🚀分享给更多人:欢迎分享给更多对编程感兴趣的朋友,一起学习!

文章目录

  • 1. 什么是异常
    • 1.1 异常的特点
    • 1.2 异常的类型
  • 2. 如何进行异常处理
    • 2.1 `try`语句
    • 2.2 `except`语句
    • 2.3 `else`语句
    • 2.4 `finally`语句
    • 2.5 自定义错误
    • 2.6 上下文管理器(`with`语句)
    • 2.7 使用`traceback`模块获取更多异常信息
  • 3. 为什么要进行异常处理
    • 3.1 有些错误无法避免
    • 3.2 异常使得代码更加灵活
    • 3.3 避免过度复杂的代码修改
  • 4. 异常和Bug有什么区别
  • 5.总结

1. 什么是异常

在编程中,异常(Exception)是指程序在运行过程中程序的错误或者意外情况,它会导致程序的控制流发生改变。通常,异常发生时程序会停止正常执行,直到找到能够处理该异常的代码或者终止程序的执行。
【Python】异常处理:从基础到进阶

1.1 异常的特点

  • 意外事件:异常是程序在运行过程中的预料之外的事情,经典的案例有:除0错误,文件为找到,网络连接中断等等。
  • 中断程序流:一旦发生异常,程序的正常执行会被中断,直到异常被捕获并处理或者程序崩溃。
  • 可捕获和处理:通过异常处理机制,可以捕获异常并进行处理,从而防止程序完全崩溃。

1.2 异常的类型

python提供了很多常见的内建异常类型,用于表示不同的错误类型。例如:

  • ZeroDivisionError:除0错误。
  • FileNotFoundError:文件未找到错误。
  • ValueError:值错误,通常发生在类型不匹配时。
  • IndexError:索引超出范围错误。

    了解完异常后,下面就是异常的处理了。

2. 如何进行异常处理

Python 的异常处理机制主要通过 tryexceptelsefinally 语句来实现。其目的是捕获程序中可能出现的错误(异常),并进行相应处理,避免程序崩溃。
具体可以分为三步:

  1. 抛出异常:当程序遇到异常情况时,会抛出异常。抛出异常时,程序控制流会被转移到最近的异常处理代码。
  2. 捕获异常:通过try-except语句,我们可以捕获并处理异常,当异常发生时,程序会跳转到与之匹配的except块进行处理。
  3. 处理异常:处理异常的方式可以是记录错误日志,提供用户友好的错误信息、恢复程序的状态等。处理完异常后,程序可以继续执行或根据需求终止。
    那么先来介绍相关的关键字吧

2.1 try语句

try块用于编写可能会抛出异常的代码。如果代码执行过程中发生异常,python会跳转到相应的except块进行处理。
写一个除0错误来看看吧

try: x = 1/0 #除0错误,抛出ZeroDivisionError异常except ZeroDivisionError as e: print(\'除0错误:\',e) #输出:除0错误: division by zero

2.2 except语句

except块用于捕获异常并处理它。可以指定捕获某一特定类型的异常,或者捕获所有异常。

try: x = 1/0except ZeroDivisionError as e: print(\'除0错误\',e)