qq电脑版官方网站如何做英文ppt模板下载网站
- 作者: 多梦笔记
- 时间: 2026年02月17日 22:01
当前位置: 首页 > news >正文
qq电脑版官方网站,如何做英文ppt模板下载网站,重庆网站免费优化,青岛网站专业制作Python 中的异常及继承关系 在 Python 中#xff0c;异常用于表示程序在运行过程中遇到的错误#xff0c;所有异常类最终都继承自 BaseException。通过异常处理#xff0c;我们可以捕获和处理这些错误#xff0c;避免程序崩溃。 Python 异常继承关系图 BaseException– …Python 中的异常及继承关系 在 Python 中异常用于表示程序在运行过程中遇到的错误所有异常类最终都继承自 BaseException。通过异常处理我们可以捕获和处理这些错误避免程序崩溃。 Python 异常继承关系图 BaseException– SystemExit– KeyboardInterrupt– GeneratorExit– Exception– StopIteration– StopAsyncIteration– ArithmeticError| – FloatingPointError| – OverflowError| – ZeroDivisionError– AssertionError– AttributeError– BufferError– EOFError– ImportError| – ModuleNotFoundError– LookupError| – IndexError| – KeyError– MemoryError– NameError| – UnboundLocalError– OSError| – BlockingIOError| – ChildProcessError| – ConnectionError| | – BrokenPipeError| | – ConnectionAbortedError| | – ConnectionRefusedError| | – ConnectionResetError| – FileExistsError| – FileNotFoundError| – InterruptedError| – IsADirectoryError| – NotADirectoryError| – PermissionError| – ProcessLookupError| – TimeoutError– ReferenceError– RuntimeError| – NotImplementedError| – RecursionError– SyntaxError| – IndentationError| – TabError– SystemError– TypeError– ValueError| – UnicodeError| – UnicodeDecodeError| – UnicodeEncodeError| – UnicodeTranslateError– Warning– DeprecationWarning– PendingDeprecationWarning– RuntimeWarning– SyntaxWarning– UserWarning– FutureWarning– ImportWarning– UnicodeWarning– BytesWarning– EncodingWarning– ResourceWarning1. BaseException 类 BaseException 是所有异常的基类所有 Python 异常都从它继承。通常不建议直接捕获 BaseException而应捕获其子类。 1.1 SystemExit不建议捕获 说明当调用 sys.exit() 以退出程序时抛出此异常。捕获建议不建议捕获因为它表示程序要正常退出。示例 import sys try:sys.exit() except SystemExit:print(程序退出)1.2 KeyboardInterrupt不建议捕获 说明当用户按下 CtrlC 终止程序时会抛出此异常。捕获建议可以捕获但通常用于自定义处理程序中断。示例 try:while True:pass except KeyboardInterrupt:print(用户中断程序)1.3 GeneratorExit不建议捕获 说明当生成器关闭时抛出通常在 yield 生成器对象调用 close() 时触发。捕获建议不建议捕获通常由系统自动处理。示例 def my_generator():try:yield 1finally:print(生成器关闭)gen my_generator() next(gen) gen.close()2. Exception 类可以捕获 Exception 是用户代码中常见异常的基类大部分可捕获的异常都继承自它。 2.1 StopIteration 和 StopAsyncIteration 说明当迭代器或异步迭代器到达结尾时抛出通常由 for 循环隐式捕获。捕获建议一般不需要手动捕获。 示例 my_iter iter([1, 2, 3]) try:while True:print(next(my_iter)) except StopIteration:print(迭代结束)2.2 ArithmeticError 及其子类 说明算术运算错误的基类。捕获建议可以捕获用于处理算术错误。 ZeroDivisionError 说明除数为零时抛出。示例 try:result 1 / 0 except ZeroDivisionError:print(不能除以零)OverflowError 说明当数值运算结果超出表示范围时抛出。 FloatingPointError 说明浮点运算出错时抛出较少见。 2.3 AssertionError 说明断言语句失败时抛出。捕获建议可以通过 try-except 捕获但应谨慎使用断言。 示例 try:assert 1 2 except AssertionError:print(断言失败)2.4 AttributeError 说明尝试访问对象不存在的属性时抛出。 示例 try:obj Noneobj.some_method() except AttributeError:print(对象没有这个属性)2.5 BufferError 说明缓冲区操作失败时抛出。捕获建议适用于处理低级别内存操作错误。 2.6 EOFError 说明当读取到文件末尾但无法返回任何数据时抛出。捕获建议适用于文件或输入流操作。 2.7 ImportError 及其子类 说明导入模块失败时抛出。 ModuleNotFoundError 说明模块未找到时抛出。 示例 try:import non_existent_module except ImportError:print(模块导入失败)2.8 LookupError 及其子类 说明查找操作失败时的基类。 IndexError 说明列表、元组或其他序列访问越界时抛出。 KeyError 说明字典中查找不存在的键时抛出。 示例 my_dict {name: Alice} try:print(my_dict[age]) except KeyError:print(键不存在)2.9 MemoryError 说明内存不足时抛出。 2.10 NameError 及其子类 说明当尝试访问未定义的变量时抛出。 UnboundLocalError 说明在函数中使用尚未赋值的局部变量时抛出。 示例 try:print(undefined_var) except NameError:print(变量未定义)2.11 OSError 及其子类 说明系统相关的错误例如文件和网络操作失败。捕获建议适用于文件系统、网络等 I/O 操作。 常见子类 FileNotFoundError文件未找到。PermissionError权限不足。TimeoutError操作超时。 示例 try:with open(non_existent_file.txt, r) as f:pass except FileNotFoundError:print(文件未找到)2.12 ReferenceError 说明弱引用被垃圾回收后访问无效对象时抛出。 2.13 RuntimeError 及其子类 说明运行时错误的基类。 NotImplementedError 说明尚未实现的方法抛出此异常。 2.14 SyntaxError 及其子类 说明Python 语法错误时抛出。 IndentationError 说明缩进错误。 TabError 说明混合使用空格和 Tab 导致的错误。 2.15 TypeError 说明操作或函数应用于不适当类型时抛出。 示例 try:print(1 a) except TypeError:print(类型错误)2.16 ValueError 及其子类 说明操作或函数接收到具有正确 类型但不合理的参数时抛出。 UnicodeError 及其子类 说明与 Unicode 编码相关的错误。 3. Warning 类及其子类可以捕获 说明Warning 类表示非致命错误通常用于提示潜在问题不会中断程序的执行。尽管它们不会自动抛出但可以通过 warnings 模块生成和捕获警告。捕获建议可以捕获通过 warnings.catch_warnings() 实现对警告的捕获。 常见子类 DeprecationWarning提示某个功能即将被废弃。PendingDeprecationWarning类似 DeprecationWarning但仅用于将来废弃的功能。RuntimeWarning运行时的一般警告。SyntaxWarning语法问题的警告。UserWarning用户代码产生的警告。FutureWarning将来版本会改变行为的警告。ImportWarning导入模块时发生问题的警告。UnicodeWarningUnicode 相关问题的警告。BytesWarning字节相关问题的警告。EncodingWarning编码相关问题的警告。ResourceWarning资源管理问题的警告例如文件没有正确关闭。 示例 import warningsdef deprecated_function():warnings.warn(该函数将被废弃, DeprecationWarning)try:warnings.simplefilter(error, DeprecationWarning)deprecated_function() except DeprecationWarning:print(捕获到废弃警告)捕获异常总结表格 异常类型是否可以捕获说明示例BaseException否所有异常的基类通常不应直接捕获。-SystemExit否表示程序正常退出通常不应捕获。-KeyboardInterrupt否用户按 CtrlC 终止程序通常不应捕获。-GeneratorExit否生成器关闭时抛出不应捕获。-Exception是大部分用户代码中的异常常见的基类可以捕获。try: … except Exception:StopIteration否迭代器结束时抛出不应捕获。-StopAsyncIteration否异步迭代器结束时抛出不应捕获。-ArithmeticError是算术运算错误的基类。捕获 ZeroDivisionError, OverflowError, FloatingPointErrorZeroDivisionError是除数为零时抛出。try: 1 / 0 except ZeroDivisionError:OverflowError是数值超出范围时抛出。try: math.exp(1000) except OverflowError:FloatingPointError是浮点运算错误时抛出。-AssertionError是断言失败时抛出。try: assert 1 2 except AssertionError:AttributeError是尝试访问不存在的对象属性时抛出。try: obj.some_method() except AttributeError:BufferError是缓冲区操作失败时抛出。-EOFError是读取到文件末尾但无法返回数据时抛出。try: input() except EOFError:ImportError是模块导入失败时抛出。try: import non_existent_module except ImportError:ModuleNotFoundError是模块未找到时抛出。try: import non_existent_module except ModuleNotFoundError:LookupError是查找操作失败的基类。捕获 IndexError, KeyErrorIndexError是序列访问越界时抛出。try: lst[100] except IndexError:KeyError是字典查找不存在的键时抛出。try: dct[key] except KeyError:MemoryError是内存不足时抛出。-NameError是访问未定义的变量时抛出。try: print(undefined_var) except NameError:UnboundLocalError是使用未赋值的局部变量时抛出。-OSError是系统级错误的基类捕获文件和网络相关的错误。捕获 FileNotFoundError, PermissionError, TimeoutErrorBlockingIOError是非阻塞操作没有立即完成时抛出。-FileNotFoundError是文件未找到时抛出。try: open(file.txt) except FileNotFoundError:PermissionError是文件权限不足时抛出。try: open(file.txt, w) except PermissionError:TimeoutError是操作超时时抛出。-ReferenceError是访问垃圾回收后的弱引用时抛出。-RuntimeError是运行时错误的基类。try: raise RuntimeError(错误) except RuntimeError:NotImplementedError是未实现的方法被调用时抛出。-RecursionError是递归深度超出限制时抛出。try: def f(): f() except RecursionError:SyntaxError否语法错误时抛出编译时错误。-IndentationError否缩进错误时抛出。-TabError否混合使用 Tab 和空格时抛出。-SystemError否Python 解释器内部错误。-TypeError是操作或函数应用于不适当类型时抛出。try: 1 a except TypeError:ValueError是函数接收到具有正确类型但不合理的参数时抛出。try: int(abc) except ValueError:UnicodeError是Unicode 编码相关错误的基类。捕获 UnicodeDecodeError, UnicodeEncodeError, UnicodeTranslateErrorWarning是可通过 warnings.catch_warnings() 捕获。try: warnings.warn(警告, UserWarning) except Warning: Python 中的异常处理 在 Python 中异常处理通过 try、except、else 和 finally 四个关键字实现。这种机制让程序能够捕获并处理异常避免程序崩溃或在发生异常后执行一些清理操作。
- try…except 基本结构 最基础的异常处理结构是 try…except用来捕获特定类型的异常。 try:# 可能发生异常的代码x 1 / 0 except ZeroDivisionError: # 捕获指定异常类型print(ZeroDivisionError: Division by zero!)try: 包含可能发生异常的代码。except: 捕获并处理特定的异常。可以捕获多种类型的异常或所有异常。
- 捕获多个异常 可以在一个 try 语句块中捕获多种异常。 try:x int(abc) except (ValueError, TypeError): # 捕获多个异常print(Caught ValueError or TypeError!)3. 捕获所有异常 使用 except Exception 可以捕获所有继承自 Exception 的异常但不推荐这样做因为会忽略具体的错误类型。 try:x 1 / 0 except Exception as e: # 捕获所有 Exception 类型的异常print(fCaught an exception: {e})4. else 子句 else 子句在没有发生异常时执行用于确保当 try 语句中的代码成功时执行某些操作。 try:x 1 / 1 except ZeroDivisionError:print(Division by zero!) else:print(No exception, division successful!)5. finally 子句 finally 子句无论是否发生异常都会执行常用于清理资源例如关闭文件或数据库连接。 try:f open(file.txt, r) except FileNotFoundError:print(File not found!) finally:print(This block will always execute)if f in locals():f.close()6. 自定义异常处理 自定义异常处理结合 raise 语句可以手动抛出异常也可以捕获并处理这些自定义异常。 class CustomError(Exception):passtry:raise CustomError(Something went wrong) except CustomError as e:print(fCaught custom exception: {e})7. 处理多个异常的结构 可以同时使用 try…except…else…finally让代码更具健壮性。 try:num int(input(Enter a number: ))result 10 / num except ValueError:print(ValueError: Please enter a valid number.) except ZeroDivisionError:print(ZeroDivisionError: Division by zero.) else:print(fDivision successful: {result}) finally:print(Cleaning up resources.)常见场景总结 捕获特定异常: 根据具体的错误类型捕获和处理以提供准确的错误信息。清理资源: 在 finally 块中关闭文件、释放数据库连接等。输入验证: 使用 try…except 处理用户输入错误。 异常处理的总结表格 异常处理关键字描述使用场景try包含可能抛出异常的代码用于包围可能出错的代码段except捕获并处理指定的异常根据不同异常类型处理不同的错误else当 try 块没有抛出异常时执行只在没有异常时执行后续代码finally无论是否发生异常都会执行清理资源如关闭文件或网络连接 通过合理使用这些结构Python 程序能够更健壮地应对错误并保证在发生异常后进行清理工作。
- 上一篇: qq代刷网站推广免费网站推广郑州
- 下一篇: qq钓鱼网站制作云校招企业服务平台
相关文章
-
qq代刷网站推广免费网站推广郑州
qq代刷网站推广免费网站推广郑州
- 站长
- 2026年02月17日
-
qq代挂网站建设商品房交易网
qq代挂网站建设商品房交易网
- 站长
- 2026年02月17日
-
qq安全中心信任网站抚州市做棋牌网站
qq安全中心信任网站抚州市做棋牌网站
- 站长
- 2026年02月17日
-
qq钓鱼网站制作云校招企业服务平台
qq钓鱼网站制作云校招企业服务平台
- 站长
- 2026年02月17日
-
qq官方网站登录产品展示网站源码php
qq官方网站登录产品展示网站源码php
- 站长
- 2026年02月17日
-
qq教程网站源码外贸数据超预期彰显中国经济韧性
qq教程网站源码外贸数据超预期彰显中国经济韧性
- 站长
- 2026年02月17日
