【python】异常

举报
幼儿园老大* 发表于 2024/10/29 21:37:14 2024/10/29
【摘要】 一、Python 异常的定义在 Python 中,异常是在程序执行过程中发生的错误情况。当程序遇到错误时,会引发一个异常,导致程序的正常执行流程被中断。Python 提供了一种机制来处理这些异常,以便程序能够在发生错误时采取适当的措施,而不是直接崩溃。二、Python 异常的类型内置异常:SyntaxError:语法错误。例如,代码中缺少括号、引号不匹配等。NameError:尝试访问一个未...
一、Python 异常的定义


在 Python 中,异常是在程序执行过程中发生的错误情况。当程序遇到错误时,会引发一个异常,导致程序的正常执行流程被中断。Python 提供了一种机制来处理这些异常,以便程序能够在发生错误时采取适当的措施,而不是直接崩溃。


二、Python 异常的类型


  1. 内置异常
    • SyntaxError:语法错误。例如,代码中缺少括号、引号不匹配等。
    • NameError:尝试访问一个未定义的变量。
    • TypeError:操作或函数应用于不适当类型的对象。例如,对一个字符串进行数学运算。
    • ValueError:当一个操作或函数接收到一个正确类型但不合适的值时引发。例如,将一个非整数字符串转换为整数。
    • IndexError:当尝试访问序列(如列表、字符串或元组)中不存在的索引时引发。
    • KeyError:当尝试访问字典中不存在的键时引发。
    • AttributeError:当尝试访问一个对象不存在的属性时引发。
    • IOError:输入 / 输出操作时发生的错误,例如文件无法打开、读取或写入错误。
    • ZeroDivisionError:尝试除以零。
  2. 自定义异常
    • 可以通过继承内置的 Exception 类来创建自定义异常。自定义异常可以根据特定的应用需求来定义,以便更好地处理程序中的错误情况。


三、异常处理的方法


  1. try-except 语句
    • 基本语法:
    • try:
          # 可能引发异常的代码块
      except ExceptionType as e:
          # 处理异常的代码块

首先,try 块中的代码会被执行。如果在执行过程中没有引发异常,那么 except 块将被跳过。如果在 try 块中引发了一个与 except 语句中指定的异常类型匹配的异常,那么程序的执行流程将立即跳转到 except 块,并将异常对象赋值给变量 e。在 except 块中,可以编写处理异常的代码。

try:
    num1 = int(input("请输入第一个数字:"))
    num2 = int(input("请输入第二个数字:"))
    result = num1 / num2
    print(f"结果是:{result}")
except ZeroDivisionError as e:
    print(f"错误:不能除以零。{e}")
except ValueError as e:
    print(f"错误:输入必须是整数。{e}")
  1. try-except-else 语句
    • 基本语法:
    • try:
          # 可能引发异常的代码块
      except ExceptionType as e:
          # 处理异常的代码块
      else:
          # 如果没有引发异常,执行的代码块

      在这个结构中,如果 try 块中的代码没有引发异常,那么 else 块中的代码将被执行。如果在 try 块中引发了异常,那么程序的执行流程将跳转到 except 块,else 块将被跳过。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。