亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Python

精通 Python 异常处理:try、except、finally 与 raise 高效用法

精通 Python 异常处理:try、except、finally 与 raise 高效用法

什么是 Python 异常处理?

异常是程序执行时发生的错误。运行程序时 Python 会生成异常,必须处理以避免程序崩溃。Python 中异常在错误时自动触发,也可由代码主动触发和拦截。

异常表明:虽然事件可能发生,但此类事件不常见。方法无法处理异常时,会抛给调用函数。最终异常抛出主函数外,程序突然终止。

本 Python 异常处理教程你将学到:

常见异常示例:

为什么要使用异常?

使用异常的理由:

异常规则

Python 异常处理基本规则:

Python 异常处理机制

异常处理由以下 5 个关键字管理:

  1. try
  2. except
  3. finally
  4. raise

Python Try 语句

try 语句包含关键字 try、冒号(:)和可能发生异常的代码套件。有一个或多个子句。

执行 try 语句时,若无异常则解释器忽略该 try 的异常处理器。

若 try 套件中发生异常,try 套件终止,程序控制转移到 try 套件后匹配的 except 处理器。

Syntax: try: statement(s)

Except 语句

Except 块一次接受一个参数,即它可能捕获的异常类型。参数范围从特定异常类型到捕获所有异常的通用类别。

Except 块规则:

示例:

try:
    # 代码
except ArrayIndexOutOfBoundsException as e:
    print("Caught first " + str(e))
except IOError as e:
    print("Caught second " + str(e))

Finally 语句

Finally 块无论是否抛出异常都执行。final 关键字允许创建跟在 try-except 后的代码块。

Finally 子句可选。旨在定义所有条件下都应执行的清理动作。

try:
    raise KeyboardInterrupt
finally:
    print('welcome, world!')
# Output
Welcome, world!
KeyboardInterrupt

Finally 子句在 try 语句前执行。

Raise 语句

raise 语句指定初始化异常对象的参数。异常名后跟逗号,再跟参数或参数元组。

语法:

raise [Exception [, args [, traceback]]]

此语法中参数可选,执行时异常参数值总为 none。

示例:

Python 异常可以是字符串、类、数字或对象等任意值。Python 核心抛出的大多数异常是带参数的类,参数是类的实例。

重要 Python 错误

错误类型描述
ArithmeticError所有算术异常的基类。算术运算错误时抛出。
ImportError尝试导入不存在的模块时抛出。模块名拼写错误或模块不在标准路径会发生此异常。
IndexError引用序列超出范围时抛出。
KeyError字典中找不到特定键时抛出。
NameError代码引用的名称在局部或全局命名空间从未存在时抛出。
ValueError函数或内置操作接收参数类型正确但值不合适时抛出。
EOFError内置函数(input() 或 raw_input())到达 EOF 条件未读取任何数据时抛出。
ZeroDivisionError所有数值类型进行除法或取模运算时除数为零抛出。
IOError输入/输出操作失败时抛出。
SyntaxErrorPython 语法错误时抛出。
IndentationError缩进未正确定义时抛出。

其他重要 Python 异常

异常描述
ArithmeticException算术错误,如除零。
ArrayIndexOutOfBoundsException数组索引越界。
ArrayStoreException赋值给不兼容类型的数组元素。
ClassCastException无效转型
IllegalMonitorStateException非法监视器操作,如在未锁定线程上等待。
IllegalStateException环境或应用处于错误状态。
ClassNotFoundException类未找到。
CloneNotSupportedException尝试克隆未实现 Cloneable 接口的对象。
IllegalAccessException拒绝访问类。
InstantiationException尝试创建接口或抽象类对象时发生。
CloneNotSupportedException尝试克隆未实现接口的对象。

Error 与 Exceptions

ErrorExceptions
Python 所有错误均为未检查类型。异常包含检查和未检查类型。
错误发生在运行时,编译器未知。异常可通过 try-catch 块处理恢复。
错误多由应用运行环境引起。应用自身引起异常。
示例:
OutOfMemoryError
示例:
Checked Exceptions, SQL exception, NullPointerException 等。

总结

Python

  1. C++ 异常处理实战:try、catch、throw 完整指南与示例
  2. 精通Python数据类型:实战指南
  3. 精通Python运算符:全面指南
  4. 精通Python Pass语句:实战指南
  5. 精通Python函数参数:位置、关键字与默认参数
  6. 精通 Python 字典:创建、操作与进阶技巧
  7. 精通 Python 异常处理:try、except、else 与 finally 详解
  8. 精通 Python 迭代器:工作原理与自定义构建
  9. Python 闭包详解:嵌套函数如何捕获变量
  10. 精通 Python 异常处理:try、except、finally 与 raise 高效用法
  11. 精通 Java 异常处理:try-catch、finally、throw 与 throws 详解
  12. 精通 Java 异常处理:try-catch-finally 与资源管理