ToB企服应用市场:ToB评测及商务社交产业平台

标题: Python教程(19)——python异常处理 [打印本页]

作者: 拉不拉稀肚拉稀    时间: 2024-3-15 01:01
标题: Python教程(19)——python异常处理
什么是异常

在计算机编程中,异常(Exception)是指在程序执行过程中发生的错误或异常情况。当出现异常时,程序无法正常继续执行,因此需要采取一些特殊的措施来处理异常,以防止程序崩溃或产生意外结果。
异常可以在程序中的任何地方发生,可能是由错误的输入、无效的操作、资源不足、硬件问题或其他未预料的情况引起的。例如,当尝试除以零、访问不存在的文件、连接失败等情况发生时,都会引发异常。
在Python等高级编程语言中,异常处理机制提供了一种结构化的方式来捕获和处理异常。通过在程序中使用try-except语句块,可以捕获并处理异常,让程序能够优雅地处理错误情况。在try块中放置可能引发异常的代码,在except块中编写处理异常的代码。
异常处理的目的是让程序有能力检测和响应异常情况,以及提供适当的错误处理和恢复机制。通过捕获和处理异常,我们可以避免程序崩溃、提供友好的错误提示、执行备用操作或回滚之前的操作,从而提高程序的稳定性和容错性。
说白了,异常是指在程序执行期间发生的错误或异常情况,是一种不可避免的行为,而异常处理是一种机制,用于检测和处理这些异常情况,以保证程序能够继续执行,并提供适当的错误处理和恢复机制。

异常处理方式

Python的异常处理机制允许我们在代码中捕获和处理可能出现的异常情况,以保证程序的稳定性和可靠性。在Python中,异常处理是通过使用try-except语句块来实现的。
try-except语句

  1. try:
  2.      # 可能引发异常的代码
  3. except ExceptionType:
  4.      # 处理异常的逻辑
复制代码
  1. try:
  2.    # 可能引发异常的代码
  3. except ExceptionType:
  4.    # 处理异常的逻辑
  5. else:
  6.    # 没有异常发生时执行的代码
复制代码
  1. try:
  2.    # 可能引发异常的代码
  3. except ExceptionType:
  4.    # 处理异常的逻辑
  5. finally:
  6.    # 一定会执行的代码
复制代码
捕获异常类型

  1. try:
  2.    num = int(input("请输入一个整数:"))
  3.    result = 10 / num
  4.    print("结果:", result)
  5. except ValueError:
  6.    print("输入的不是有效的整数")
复制代码
在这个示例中,int(input("请输入一个整数:"))语句可能引发ValueError异常,如果用户输入的不是有效的整数。如果引发了该异常,程序会跳转到except ValueError块内部的逻辑,打印出错误信息。
  1. try:
  2.     num1 = int(input("请输入一个整数:"))
  3.     num2 = int(input("请输入另一个整数:"))
  4.     result = num1 / num2
  5.     print("结果:", result)
  6. except (ValueError, ZeroDivisionError):
  7.     print("输入的不是有效的整数或除数不能为零")
复制代码
在这个示例中,我们使用了一个元组(ValueError, ZeroDivisionError)作为异常类型的参数,在except语句中捕获了ValueError和ZeroDivisionError两种异常类型。
  1. try:
  2.    file = open("data.txt", "r")
  3.    content = file.read()
  4.    file.close()
  5. except Exception as e:
  6.    print("发生异常:", str(e))
复制代码
在这个示例中,尝试打开文件data.txt进行读取操作。如果在打开或读取文件的过程中发生了任何异常,程序会跳转到except Exception as e块内部的逻辑,打印出异常信息。
相关的异常类型

在Python当中,异常类型是很多。以下是一点整理的一些关于异常的类型。如果有错误的,欢迎大家指出。
异常类型说明Exception所有异常的基类SyntaxError语法错误,通常是由于代码书写不符合语法规则造成的IndentationError缩进错误,通常是由于缩进不正确造成的NameError名称错误,通常是在代码中使用了一个未定义的变量或函数名TypeError类型错误,通常是在进行不兼容类型的操作时引发的ValueError值错误,通常是在逻辑上不合理或无效的值被传递时引发的IndexError索引错误,通常是在尝试访问列表、元组、字符串等类型时索引超出范围KeyError键错误,通常是在尝试访问字典中不存在的键时引发的AttributeError属性错误,通常是在尝试访问对象不存在的属性时引发的FileNotFoundError文件未找到错误,通常是在尝试打开或读取不存在的文件时引发的IOError输入输出错误,通常是在进行文件操作时发生的错误ZeroDivisionError除零错误,通常是在尝试进行除以零的运算时引发的AssertionError断言错误,通常是在调用assert语句时条件为False时引发的ImportError导入错误,通常是在导入模块或包时出现问题时引发的OverflowError溢出错误,通常是由于数值超过其类型的范围导致的KeyboardInterrupt键盘中断错误,通常是用户在运行程序时按下了Ctrl+C
更多精彩内容,请关注同名公众:一点sir(alittle-sir)


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4