Skip to content
编码者
编码者

关注IT咨询、IT规划、数字化转型、架构设计、项目管理、软件开发和交付

  • 首页
  • IT咨询
    • IT咨询框架
    • IT项目管理
  • 人工智能
    • AI概念和理论
    • 数据科学
    • 人工智能应用
  • 企业架构
    • 应用架构设计
  • 程序员基础
    • 计算机网络
  • 编程技术栈
    • C语言编程
    • Python编程
    • iOS App开发
    • .NET技术栈
    • WordPress
    • Unity游戏开发
    • UE虚幻引擎
    • 技术问题记录
  • 工具Tips
  • 行业动态
  • 关于我
编码者

关注IT咨询、IT规划、数字化转型、架构设计、项目管理、软件开发和交付

《Python编程》016 – Python异常处理基础知识

编码者, 2023年8月8日2023年8月8日

异常是程序运行时可能发生的意外事件,例如除零错误或文件未找到错误。这些异常可能导致程序崩溃,因此正确处理异常非常重要。在本文中,我们将学习如何在Python中处理异常的基础知识。

异常的类型

在Python中,有两种主要类型的异常:内置异常和用户自定义异常。内置异常是当Python解释器遇到错误时自己引发的异常,例如ZeroDivisionError或FileNotFoundError。用户自定义异常是您在代码中自己定义的异常。

基本异常处理

在Python中处理异常的最基本方法是使用try-except语句块。下面是一个例子:

try:
    # 可能引发异常的代码
    x = 1 / 0
except:
    # 处理异常的代码
    print("发生了错误。")

在这个例子中,我们使用try-except语句块来处理当我们尝试将1除以0时可能引发的ZeroDivisionError。如果引发了异常,将执行except块中的代码,打印出”发生了错误”的消息。

捕获特定异常

除了使用通用的except块捕获所有异常之外,您还可以使用except语句捕获特定的异常。下面是一个例子:

try:
    # 可能引发异常的代码
    file = open("myfile.txt")
except FileNotFoundError:
    # 处理FileNotFoundError的代码
    print("文件未找到。")
except:
    # 处理所有其他异常的代码
    print("发生了错误。")

在这个例子中,我们使用try-except语句块来处理当我们尝试打开不存在的文件时可能引发的FileNotFoundError。如果引发了FileNotFoundError,将执行第一个except块中的代码,打印出”文件未找到”的消息。如果引发了其他任何异常,将执行通用的except块中的代码,打印出”发生了错误”的消息。

使用else和finally块

除了try和except块,您还可以使用else和finally块来管理异常处理。

else块在try块中没有引发异常时执行。下面是一个例子:

try:
    # 可能引发异常的代码
    x = 1 / 2
except ZeroDivisionError:
    # 处理ZeroDivisionError的代码
    print("不能除以零。")
else:
    # 如果没有引发异常,执行的代码
    print("结果是:", x)

在这个例子中,我们使用try-except语句块来处理当我们尝试将1除以0时可能引发的ZeroDivisionError。如果没有引发异常,将执行else块中的代码,打印出除法的结果。

finally块无论在try和except块中发生什么都会执行。下面是一个例子:

try:
    # 可能引发异常的代码
    file = open("myfile.txt")
    # 对文件执行一些操作
finally:
    # 无论如何都要执行的代码
    file.close()

在这个例子中,我们使用try-finally语句块来确保文件始终被关闭,无论在try块中发生什么。如果引发异常,finally块仍然会执行,并且文件将被关闭。

抛出异常

您还可以使用raise语句自己抛出异常。下面是一个例子:

x = -5

if x < 0:
    raise ValueError("x不能为负数。")

在这个例子中,如果x为负数,我们会引发一个ValueError异常。raise语句以异常类型作为参数,您可以传递一个消息字符串来提供有关异常的更多信息。

定义自定义异常

您还可以通过创建从Exception类继承的类来定义自定义的自定义异常。下面是一个例子:

class MyException(Exception):
    pass

raise MyException("这是一个自定义异常。")

在这个例子中,我们通过创建一个从Exception类继承的类来定义了一个自定义异常MyException。如果需要,可以传递一个消息字符串来提供关于异常的更多信息。

总结

在本文中,我们学习了Python中异常处理的基础知识。我们了解了如何使用try-except语句块捕获和处理异常,如何捕获特定的异常,以及如何使用else和finally语句块。我们还了解了如何抛出异常和定义自定义异常。正确的异常处理是编写健壮和可靠代码的重要部分,了解这些概念将帮助您编写更好的Python程序。

Post Views: 502
Python编程 Python ExceptionPython异常

文章导航

Previous post
Next post

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

近期文章

  • 机器学习三要素:模型假设、评价函数与优化算法如何协同工作
  • 如何导出宽表格Excel为PDF且不裁剪列
  • 人工智能发展简史:从图灵到ChatGPT的里程碑之路
  • AI Agents介绍:定义、原理、案例与未来展望
  • 人工智能(AI)初学者学习路线图(2025年)
  • 《Unity入门实战》0008 – 使用 Unity 的 [SerializeField] 实现封装与 Inspector 面板访问
  • 《Unity入门实战》0007 – 第一个 Unity C# 脚本:控制 2D 小球移动与跳跃
  • 2025年AI行业趋势综述
  • 《Unity入门实战》0006 – 第一个 C# 示例代码,演示如何捕获输入
  • 《Unity入门实战》0005 – 创建 C# 脚本

近期评论

    归档

    • 2025 年 6 月 (7)
    • 2025 年 5 月 (10)
    • 2025 年 4 月 (5)
    • 2025 年 2 月 (1)
    • 2024 年 12 月 (4)
    • 2024 年 11 月 (7)
    • 2024 年 9 月 (1)
    • 2024 年 8 月 (4)
    • 2024 年 7 月 (1)
    • 2024 年 2 月 (1)
    • 2023 年 12 月 (3)
    • 2023 年 11 月 (6)
    • 2023 年 10 月 (4)
    • 2023 年 9 月 (2)
    • 2023 年 8 月 (38)
    • 2022 年 2 月 (1)
    • 2022 年 1 月 (13)
    • 2021 年 1 月 (1)
    • 2020 年 10 月 (1)
    • 2020 年 1 月 (1)
    • 2014 年 7 月 (2)

    分类

    • IT咨询 (7)
      • IT咨询框架 (3)
      • IT项目管理 (2)
    • 人工智能 (10)
      • AI概念和理论 (1)
      • 数据科学 (3)
    • 企业架构 (3)
    • 工具Tips (2)
    • 生活笔记 (24)
    • 程序员基础 (3)
      • 计算机网络 (2)
    • 编程笔记 (56)
      • .NET技术栈 (3)
      • C语言编程 (1)
      • Golang技术栈 (1)
      • iOS App开发 (1)
      • Python编程 (18)
      • UE虚幻引擎 (1)
      • Unity游戏开发 (9)
      • Wordpress (5)
      • 工具 (1)
    • 行业动态 (14)
    ©2025 编码者 | WordPress Theme by SuperbThemes | 沪ICP备17019044号-3