Python特殊字符异常处理示例详解

 更新时间:2026年02月09日 15:20:58   作者:choke233  
本文详细介绍了Python中的异常处理机制,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,感兴趣的朋友一起看看吧

在 Python 编程中,程序错误主要分为三类:

类型说明
语法错误代码不符合 Python 语法规范,无法运行
逻辑错误程序能运行,但结果不符合预期
运行时错误(异常)程序在运行过程中发生的错误

其中,我们今天重点讨论的就是——异常(Exception)

1. 异常的本质

  • 异常是程序运行过程中发生的事件
  • 会影响程序的正常执行
  • 如果不处理,会导致程序崩溃

常见异常示例:

1 / 0
# ZeroDivisionError: division by zero
'2' + 2
# TypeError: can only concatenate str (not "int") to str
open('file.txt')
# FileNotFoundError

二、异常的类型

Python 中所有异常都继承自:

BaseException
  └── Exception

常见异常类型:

异常类型触发场景
NameError使用未定义变量
TypeError数据类型不匹配
ValueError传入无效参数
IndexError列表索引越界
FileNotFoundError文件不存在
ZeroDivisionError除以 0

三、异常处理核心:try-except

1. 基本语法

try:
    可能出错的代码
except 异常类型:
    出错后的处理代码

示例:

try:
    x = 10 / 0
except ZeroDivisionError:
    print("除数不能为0!")

2. 捕获多个异常

try:
    print(count)
    arr = [1,2,3]
    print(arr[5])
except NameError as e:
    print("变量未定义:", e)
except IndexError as e:
    print("索引越界:", e)

3. 捕获所有异常

try:
    ...
except Exception as e:
    print("发生异常:", e)

⚠️ 不推荐滥用:
捕获所有异常会掩盖真实问题,只建议在全局保护时使用

四、异常处理进阶结构

1. try-except-else

try:
    x = 10 / 2
except ZeroDivisionError:
    print("错误")
else:
    print("没有异常时执行")
  • try 没异常 → 执行 else
  • try 有异常 → 不执行 else

2. try-except-finally

try:
    f = open("test.txt")
except:
    print("出错")
finally:
    print("无论如何都会执行")
  • 关闭文件
  • 释放资源
  • 断开连接

3. 完整结构

try:
    ...
except:
    ...
else:
    ...
finally:
    ...

五、主动抛出异常

1. raise 语句

age = 15
if age < 18:
    raise ValueError("年龄必须大于18岁")

2. assert 断言

assert age >= 18, "年龄必须>=18"
  • 多用于测试阶段
  • 条件为 False 时抛出 AssertionError

六、异常的传递机制

异常具有“向上传递”的特性:

def func1():
    return 10 / 0
def func2():
    func1()
try:
    func2()
except ZeroDivisionError:
    print("已捕获异常")
  • 下层未处理 → 向上层传递
  • 直到被捕获或程序崩溃

七、自定义异常

当内置异常无法满足需求时,可以自己定义:

class AgeError(Exception):
    pass
age = 16
if age < 18:
    raise AgeError("未满18岁!")

自定义异常的好处:

  • 更符合业务语义
  • 便于维护和调试

八、with 语句与异常

1. 为什么需要 with?

传统写法:

file = open("a.txt")
...
file.close()

如果中途报错,文件可能无法关闭。

2. 使用 with

with open("a.txt") as f:
    print(f.read())

优势:

  • 自动释放资源
  • 更安全优雅

3. 原理:上下文管理器

支持 with 的对象都实现了:

  • __enter__()
  • __exit__()

我们也可以自定义:

class MyOpen:
    def __enter__(self):
        print("进入")
    def __exit__(self, type, val, tb):
        print("退出")

九、异常处理最佳实践

✅ 建议:

  • 精准捕获异常类型
  • 不要滥用 except Exception
  • 关键资源用 finallywith
  • 合理使用自定义异常

❌ 不建议:

  • 空 except
  • 吞掉异常不处理
  • 用异常代替逻辑判断

到此这篇关于Python特殊字符异常处理示例详解的文章就介绍到这了,更多相关Python异常处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 在PyCharm中接入deepseek的API的各种方法

    在PyCharm中接入deepseek的API的各种方法

    本文详细介绍了在PyCharm中接入DeepSeek API的步骤,包括获取API密钥、安装库、编写代码、运行和调试、处理响应以及可选的封装为函数或类,此外,还提供了替代的调用方法,感兴趣的小伙伴跟着小编一起来看看吧
    2025-02-02
  • python3生成随机数实例

    python3生成随机数实例

    这篇文章主要介绍了python3生成随机数的用法,实例讲述了基于Python的随机数的小程序,需要的朋友可以参考下
    2014-10-10
  • python使用pandas实现Excel转换为CSV文件

    python使用pandas实现Excel转换为CSV文件

    在数据处理和分析中,我们经常需要将 Excel 文件转换为 CSV 格式,这篇文章我们主要来介绍一下python如何使用pandas实现Excel转换为CSV文件,希望对大家有所帮助
    2024-10-10
  • RC4文件加密的python实现方法

    RC4文件加密的python实现方法

    这篇文章主要介绍了RC4文件加密的python实现方法,实例分析了RC4文件加密的原理与Python实现技巧,需要的朋友可以参考下
    2015-06-06
  • Python自动化测试selenium指定截图文件名方法

    Python自动化测试selenium指定截图文件名方法

    这篇文章主要介绍了Python自动化测试selenium指定截图文件名方法,Selenium 支持 Web 浏览器的自动化,它提供一套测试函数,用于支持 Web 自动化测试,下文基于python实现指定截图文件名方法,需要的小伙伴可以参考一下
    2022-05-05
  • 教你用Python脚本快速为iOS10生成图标和截屏

    教你用Python脚本快速为iOS10生成图标和截屏

    这篇文章主要介绍了教你用Python快速为iOS10生成图标和截屏的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • python 爬取学信网登录页面的例子

    python 爬取学信网登录页面的例子

    今天小编就为大家分享一篇python 爬取学信网登录页面的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Django 中使用日志的方法

    Django 中使用日志的方法

    Django 使用 Python 内置的 logging 模块处理系统日志,所以,只要掌握了 Python 中的 logging 模块,基本也就能够在 django 中使用日志了,本文重点给大家介绍django 中使用日志的方法,感兴趣的朋友一起看看吧
    2022-07-07
  • openCV中KNN算法的实现

    openCV中KNN算法的实现

    KNN算法是一种简单且常用的分类算法,本文主要介绍了openCV中KNN算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-04-04
  •  Python 匿名函数lambda 详情

     Python 匿名函数lambda 详情

    这篇文章主要介绍了 Python 匿名函数lambda,​​lambda​​​  函数返回函数本身而不是将其赋值给一个变量名。所以它也被称为匿名函数,下文更多相关内容需要的小伙伴可以参考一下
    2022-03-03

最新评论