Python内置异常2025年4月17日 | 阅读7分钟 在 Python 中,每个实例都必须属于一个继承自 BaseException 的类。即使它们的名称相同,两个不通过子类化连接的异常类也永远不会相等。解释器或内置方法可能会生成内置异常。 当出现错误时,Python 会引发许多内置异常。Python 中有许多内置异常,您可以在任何代码中随时引发和处理它们。下面列出了一些最受欢迎的内置异常: 1. BaseExceptionBaseException 是 Python 中所有异常的基类。它是 Python 标准库中所有其他异常类的父类。它为所有异常提供了基本框架,并作为开发自定义异常的基础。 BaseException 的一些特性和方法如下:
示例 代码 输出 CustomException Traceback ( most recent call last ) Input In [ 1 ], in < cell line : 8>( ) 5 def __str__( self ) : 6 return self.message ---- > 8 raise CustomException(" This is a custom exception. ") CustomException : This is a custom exception. 2. Exception Exception所有 Python 异常都源自这个基本类。它是该语言所有其他内置异常的父类。如果您想设计自己的自定义异常,可以从 Exception 类派生。因此,您可以像处理内置异常一样轻松地处理自定义异常。建议所有用户定义的异常都源自此类。 示例 代码 输出 A custom exception was raised : This is a custom exception. 3. AttributeError当属性引用或赋值失败时,会引发此异常。当您尝试访问对象上不存在的属性或方法时,通常会发生这种情况。 示例 代码 输出 An attribute error occurred : ' MyClass ' object has no attribute ' non_existent_attribute ' 4. TypeError当对错误类型的对象执行 Python 操作或函数时,会引发 TypeError 异常。这通常发生在您尝试使用错误参数类型调用函数,或对类型不正确的对象执行操作时。 示例 代码 输出 A type error occurred : can only concatenate str (not " int ") to str 5. ValueError当内置方法或函数的参数类型正确但值不正确(因为没有其他异常更具体地描述这种情况)时,Python 会触发 ValueError 异常。 示例 代码 输出 A value error occurred : invalid literal for int() with base 10 : ' a ' 6. KeyError当在 Python 中使用不存在的键搜索字典时,会引发 KeyError 异常。 示例 代码 输出 A key error occurred : ' c ' 7. IndexError当索引超出范围时,会引发此异常。当使用超出范围的索引访问 Python 中的列表时,会引发 IndexError 异常。 示例 代码 输出 An index error occurred : list index out of range 8. FileNotFoundError当请求文件或目录,但指定的文件或目录不存在时,会引发此异常。当 Python 找不到应读取、访问或检索的文件时,会引发 FileNotFoundError 异常。 示例 代码 输出 A file not found error occurred: [ Errno 2 ] No such file or directory : ' myfile.txt ' 9. ImportError当 import 语句失败时,会引发此异常。当无法导入包或模块时,Python 会触发 ImportError 异常。 示例 代码 输出 An import error occurred : No module named ' nonexistent_module ' 10. ArithmeticError当算术运算(例如除以零或计算负整数的平方根)失败时,Python 的内置 ArithmeticError 异常会被触发。它是 OverflowError 和 ZeroDivisionError 等更专业的算术错误的基类。 示例 代码 输出 An arithmetic error occurred : division by zero 11. OverflowError当算术运算的结果太大而无法表示时,Python 的内置 OverflowError 异常会被触发。当数学函数的结果超过可表示的最大整数时,会产生此异常,它是 ArithmeticError 的子类。 示例 代码 12. SyntaxError当 Python 解释器在您的代码中遇到语法问题时,会触发内置的 SyntaxError 异常。当代码违反 Python 编程语言的语法要求时,就会发生语法错误,例如错误地使用了保留字、错误地使用了缩进或错误地使用了引号。 代码 输出 SyntaxError : invalid syntax 13. AssertionError当 assert 语句失败时,会引发 Python 的内置异常 AssertionError。assert 语句用于验证流程继续进行必须为真的条件。如果 assert 语句中指定的条件不为真,则会引发 AssertionError 异常。 示例 代码 输出 AssertionError: x is not greater than 10 14. FloatingPointError当涉及浮点数的运算产生不可定义或无意义的数学结果时,Python 的内置 FloatingPointError 异常会被触发。当执行除以零的操作,或者当值太大或太小而无法表示为浮点数时,可能会发生这种情况。 代码 输出 nan 15. EOFError当遇到文件结束 (EOF) 标记且没有要读取的更多数据时,Python 的内置 EOFError 异常会被触发。在读取文件、套接字或其他输入流的内容时,可能会发生这种情况。 示例 代码 输出 EOFError : EOF when reading a line 这是一个演示如何引发和处理不同内置异常的示例: 代码 输出 An index error occurred : list index out of range A division by zero error occurred: division by zero A value error occurred : invalid literal for int( ) with base 10 : ' hello ' 在此示例中,第一个 try 块引发了一个 IndexError 异常,该异常被 except 块捕获并处理。第二个 try 块引发了一个 ZeroDivisionError 异常,该异常也被捕获并处理。第三个 try 块引发了一个 ValueError 异常,该异常被捕获并处理。 这演示了如何在 Python 中引发和处理不同的内置异常,以及如何为每种类型的异常编写特定的异常处理程序。通过使用异常处理,您可以编写健壮的代码,能够优雅地处理错误和异常,并向用户提供有意义的错误消息。 下一主题Python 文件处理 |
我们请求您订阅我们的新闻通讯以获取最新更新。