Python中的异常——概述和基本语法

2023年 8月 18日 74.8k 0

Python中的异常——概述和基本语法

摘要:Python中的异常是指在程序运行时发生的错误情况,包括但不限于除数为0、访问未定义变量、数据类型错误等。异常处理机制是Python提供的一种解决这些错误的方法,我们可以使用try/except语句来捕获异常并进行相应的处理。本部分将对Python中的异常及其基本语法进行详细介绍。

1.简介

1.1什么是异常

当检测到一个错误时,解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的"异常"。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ji6odY6h-1681457268605)(image-20230414145350826.png)]

1.2异常演示

例如:以r方式打开一个不存在的文件。

f = open('xiaogao.txt', 'r')

执行结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uppFjQTY-1681457268613)(image-20230414145621235.png)]

1.3python异常

Python中的异常是指在程序运行时出现的错误,这些错误可能导致程序崩溃或产生不可预期的结果。Python提供了一种机制来处理这些错误,即异常处理机制。

1.4常见的Python异常类型

Python中有很多不同类型的异常,每种异常都代表着不同的错误情况。以下是几个常见的Python异常:

  • ZeroDivisionError:除数为0。
  • NameError:尝试访问未定义的变量。
  • TypeError:数据类型错误。
  • IndexError:列表、元组等序列中的下标超出范围。
  • KeyError:尝试访问字典中不存在的键。
  • IOError:输入/输出错误。
  • ValueError:传递给函数的参数类型正确但值无效。
  • ImportError:无法导入模块或包。
  • 2.异常的捕获方法

    2.1捕获常规异常

    基本语法:

    try:
        可能发生错误的代码
    except:
        如果出现异常执行的代码
    
    

    案例:
    需求:尝试以r模式打开文件,如果文件不存在,则以w方式打开。

    try:
        f = open('linux.txt', 'r')
    except:
        f = open('linux.txt', 'w')
    
    

    2.2捕获指定异常

    基本语法:

    try:
        print(name)
    except NameError:
        print('name变量名称未定义错误')
    
    

    注意:

    ① 如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常。
    ② 一般try下方只放一行尝试执行的代码。

    2.3捕获多个异常

    当捕获多个异常时,可以把要捕获的异常类型的名字,放到except 后,并使用元组的方式进行书写。

    try:
        print(1/0)
    except (NameError, ZeroDivisionError):
        print('ZeroDivision错误...')
    
    

    执行结果:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bLigIty1-1681457268618)(image-20230414150130680.png)]

    2.4捕获异常并输出描述信息

    基本语法:

    try:
        print(num)
    except (NameError, ZeroDivisionError) as e:
        print(e)
    
    

    执行结果:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gx699UqN-1681457268619)(image-20230414150411424.png)]

    2.5捕获所有异常

    基本语法:

    try:
        print(name)
    except Exception as e:
        print(e)
        
    

    执行结果:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K5x5EbnU-1681457268622)(image-20230414150521913.png)]

    2.6异常else

    else表示的是如果没有异常要执行的代码。

    基本语法:

    try:
        print(1)
    except Exception as e:
        print(e)
    else:
        print('我是没有异常的时候执行的else代码')
    
    

    执行结果:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cXK5U38u-1681457268624)(image-20230414150628637.png)]

    2.7异常的finally

    finally表示的是无论是否异常都要执行的代码,例如关闭文件。

    try:
        f = open('test.txt', 'r')
    except Exception as e:
        f = open('test.txt', 'w')
    else:
        print('没有异常')
    finally:
        f.close()
    
    

    在编写Python程序时,需要考虑到可能出现的各种异常情况,并编写相应的异常处理代码。

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论