博客
关于我
17 python基础--异常处理
阅读量:574 次
发布时间:2019-03-11

本文共 1551 字,大约阅读时间需要 5 分钟。

Python异常处理指南

1. 异常定义

异常是Python中用来表示程序运行中出现问题的机制。简单来说,就是在代码运行过程中,某些操作无法按预期完成时,会抛出异常。这些异常可以分为两种:错误和异常。

  • 错误是指在语法或逻辑上是正确的操作中,仍然出现了无法预料的问题。
  • 异常更严重,是指在语法逻辑正确的前提下,某些操作根本无法完成。

在Python中,异常是一个类,可以通过抛出(raise)和捕捉(try-except)机制来处理。

2. 常见异常类型

以下是一些常见的Python异常类型:

  • AssertionError:用于断言语句(assert)失败。
  • AttributeError:尝试访问一个对象没有的属性。
  • EOFError:试图读取文件末尾标志(EOF,通常是Ctrl+d)。
  • FloatingPointError:浮点数计算出现错误。
  • GeneratorExit:生成器的close()方法被调用时引起。
  • ImportError:导入模块失败。
  • IndexError:索引超出序列范围。
  • KeyError:尝试访问字典中的不存在的关键字。
  • KeyboardInterrupt:用户中断键盘输入(Ctrl+c)。
  • MemoryError:内存溢出(可通过删除对象释放内存)。
  • NameError:尝试访问一个不存在的变量或函数。
  • NotImplementedError:未实现的方法。
  • OSError:操作系统异常,如尝试打开不存在的文件。
  • OverflowError:数值运算超出最大限制。
  • ReferenceError:弱引用尝试访问已经被垃圾回收的对象。
  • RuntimeError:一般的运行时错误。
  • StopIteration:生成器没有更多值可以返回。
  • SyntaxError:语法错误。
  • UnicodeError:Unicode相关错误。
  • ValueError:传入无效的参数。

3. 异常处理

异常处理是编写健壮代码的关键。在现实应用中,我们无法保证程序在所有情况下都能正常运行,所以必须处理各种潜在问题。

Python的异常处理机制通过tryexceptfinally标签来实现:

  • try:尝试执行后面的代码块。
  • except:如果在try块中发生异常,可以在这里捕获并处理该异常。
  • except(异常类型):为特定异常准备处理逻辑。
  • except(多个异常):使用逗号分隔多个异常类型。
  • **except:没有异常时执行的代码块。
  • finally:不管是否发生异常,都会执行的代码块。

异常处理流程如下:

  • 执行try内的代码。
  • 如果发生异常,进入对应的except块处理。
  • 如果没有异常,执行else块。
  • 最后,不管是否有异常,都会执行finally块。
  • 4. 手动引发异常

    有时候,我们需要自行引发异常以测试代码的健壮性。可以使用raise关键字来实现:

    # 自定义异常类class DanaValueError(ValueError):    pass# 手动引发一个异常raise DanaValueError("我爱王晓静")

    当引发异常时,可以指定异常类型。可以使用多个except块来处理不同的异常类型:

    try:    print("我爱王晓静")    print(3.1415926)    raise DanaValueError("DanaValueError发生了")finally:    print("我肯定会被执行的")

    总结

    异常处理是编写健壮代码的关键技能。在Python中,可以通过try-except机制来捕获和处理异常,确保程序在各种异常情况下都能稳定运行。掌握这些技能,可以显著提升你的编程水平,避免因简单问题导致程序崩溃。

    转载地址:http://zlztz.baihongyu.com/

    你可能感兴趣的文章
    【自学Flutter】4.1 Material Design字体图标的使用(icon)
    查看>>
    C++清空队列(queue)方法
    查看>>
    【换行符】什么时候用cin.get()吃掉输入流中的换行符
    查看>>
    【二叉树】已知后序与中序求先序
    查看>>
    数组范围的动态扩容
    查看>>
    如何选择三种验证类型的https证书
    查看>>
    解决Nginx 404 not found问题
    查看>>
    计算机网络之第三章笔记--数据链路层
    查看>>
    创建型模式之简单工厂模式实例及代码操作
    查看>>
    广东外语外贸大学第三届网络安全大赛Writeup
    查看>>
    跟着燕青学分布式事务控制技术方案
    查看>>
    Activiti视频分享
    查看>>
    VS2019 报错: LINK Error 无法找到 MSCOREE.lib的解决办法
    查看>>
    关于JS中的内存溢出与内存泄漏
    查看>>
    JS实现防抖与节流(使用按钮触发事件)
    查看>>
    React 学习笔记 —— refs 属性的三种书写方式
    查看>>
    CCF 模拟2-1 夏令营
    查看>>
    第八届蓝桥杯——杨辉三角
    查看>>
    算法训练——字符串合并
    查看>>
    信息学奥赛一本通【题目索引 + 解答】
    查看>>