python使用try函数详解

 更新时间:2025年07月29日 14:22:56   作者:高级测试工程师欧阳  
Python try语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景

try 函数的基本语法

Python 中的 try 语句用于捕获和处理异常。

其基本语法结构如下:

try:
    # 尝试执行的代码块
except ExceptionType:
    # 发生异常时执行的代码块
else:
    # 未发生异常时执行的代码块
finally:
    # 无论是否发生异常都会执行的代码块

捕获特定异常

可以指定捕获特定类型的异常,例如 ValueErrorIndexError,以便针对不同的异常采取不同的处理措施。

try:
    num = int("abc")
except ValueError:
    print("输入的不是有效数字")

捕获多个异常

在一个 try 块中可以捕获多种异常,并通过多个 except 子句分别处理。

try:
    result = 10 / 0
    num = int("abc")
except ZeroDivisionError:
    print("除数不能为零")
except ValueError:
    print("输入的不是有效数字")

使用 else 子句

else 子句中的代码会在 try 块未引发任何异常时执行。

try:
    num = int("123")
except ValueError:
    print("输入的不是有效数字")
else:
    print(f"转换后的数字是: {num}")

使用 finally 子句

finally 子句中的代码无论是否发生异常都会执行,常用于资源清理操作,如关闭文件或数据库连接。

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

捕获所有异常

如果不确定具体会引发哪种异常,可以使用通用的 Exception 类捕获所有异常。

try:
    result = 10 / 0
except Exception as e:
    print(f"发生异常: {e}")

自定义异常处理

可以通过继承 Exception 类创建自定义异常,并在 try 块中主动抛出异常(raise)。

class CustomError(Exception):
    pass

try:
    raise CustomError("这是一个自定义异常")
except CustomError as e:
    print(f"捕获到自定义异常: {e}")

嵌套 try 块

try 块可以嵌套使用,内层 try 块可以处理更具体的异常,外层 try 块处理更通用的异常。

try:
    try:
        num = int("abc")
    except ValueError:
        print("内层捕获到 ValueError")
    result = 10 / 0
except ZeroDivisionError:
    print("外层捕获到 ZeroDivisionError")

结合 with 语句

try 块常与 with 语句结合使用,确保资源在使用后自动释放(如文件操作)。

try:
    with open("example.txt", "r") as file:
        content = file.read()
except FileNotFoundError:
    print("文件未找到")

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python提取PDF发票信息保存Excel文件并制作EXE程序的全过程

    Python提取PDF发票信息保存Excel文件并制作EXE程序的全过程

    之前零散的用过一点python做数据处理,这次又遇到一个数据处理的小功能,下面这篇文章主要给大家介绍了关于Python提取PDF发票信息保存Excel文件并制作EXE程序的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • C++/Python混合编程之小结Pybind11的使用

    C++/Python混合编程之小结Pybind11的使用

    Pybind11是一个轻量级的C++库,用于将你的C++代码暴露给Python调用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-05-05
  • 在centos7中分布式部署pyspider

    在centos7中分布式部署pyspider

    PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI。采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器,任务监视器,项目管理器以及结果查看器。
    2017-05-05
  • Python字符串处理之count()方法的使用

    Python字符串处理之count()方法的使用

    这篇文章主要介绍了Python字符串处理之count()方法的使用,是Python入门的基础知识,需要的朋友可以参考下
    2015-05-05
  • Python ollama的搭建与使用流程分析

    Python ollama的搭建与使用流程分析

    这篇文章主要介绍了Python ollama的搭建与使用流程分析,详细介绍了ollama的安装方式,本文结合实例给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • Python使用DeepSeek进行联网搜索功能详解

    Python使用DeepSeek进行联网搜索功能详解

    Python作为一种非常流行的编程语言,结合DeepSeek这一高性能的深度学习工具包,可以方便地处理各种深度学习任务,本文将介绍一下如何使用Python和DeepSeek进行联网搜索,感兴趣是可以了解下
    2025-03-03
  • pycharm快捷键自动提示documentation问题(auto Ctrl+Q)

    pycharm快捷键自动提示documentation问题(auto Ctrl+Q)

    这篇文章主要介绍了pycharm快捷键自动提示documentation问题(auto Ctrl+Q),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • pytorch中的numel函数用法说明

    pytorch中的numel函数用法说明

    这篇文章主要介绍了pytorch中的numel函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05
  • 使用Python轻松实现添加与删除Excel工作表的实战指南

    使用Python轻松实现添加与删除Excel工作表的实战指南

    这篇文章主要介绍了如何使用Python中的openpyxl库批量处理Excel文件的方法,主要包括添加和删除Excel工作表,感兴趣的小伙伴可以了解一下
    2026-04-04
  • Python实现一键提取PDF文件中的文本、表格和图片

    Python实现一键提取PDF文件中的文本、表格和图片

    PDF 文档作为一种广泛使用的文件格式,常常包含丰富的内容元素,本文将介绍如何使用 Python 和 Spire.PDF 库来提取 PDF 文件中的文本、表格和图片,帮助您将静态的 PDF 文档转换为可编辑、可分析的数据资源
    2026-04-04

最新评论