• Python基础入门篇【36】-python初识异常及常见的异常类型


    前言
    作者简介:短尾巴小鳄鱼 ,一位不放弃自己的上进卷妹
    💬 如果文章知识点有错误的地方,请留言指正~和大家一起学习,一起进步
    💬 人生格言:昨日种种,皆成今我。今日种种,方成新我。切莫踌躇,莫停留,莫沉溺💬
    如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦

    python初识异常

    什么是异常?

    异常就是错误,我们把代码的错误叫做异常的抛出

    异常会导致程序崩溃并停止运行

    我们需要处理这些异常才能保证程序继续正常运行

    如何处理异常?

    通过监控并捕获到异常,将异常部位的程序进行修理使得程序继续正常运行

    处理异常的语法:

    try:
        <代码块>  # 此为被try关键字监控并保护的业务代码块
    except <异常的类型><异常处理代码块>  # 上面的代码块出现错误后执行的代码块
    
    • 1
    • 2
    • 3
    • 4

    程序在执行try中的代码块时,如果不会出错,将不会走到except下的代码块。

    例子:

    之前学过upper()函数是将字母大写,它接收的参数必须是个字符串类型,否则会报错。

    用异常来捕获这个错误,并处理一下,使程序不要直接报错,而是给一个相对友好的提示。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JnTUuGQp-1659154207078)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220730111836150.png)]

    捕获通用异常

    无法确定是哪种异常的情况下使用的捕获方法

    try:
        <代码块>
    except Exception as e:
        <异常处理代码块>
    
    • 1
    • 2
    • 3
    • 4

    注意:这个语法是固定的 Exception 是一个类,里面包含了浩瀚的异常库。as e相当于将 Exception 重命名为e

    例子:

    用通用异常的方式来返回上面例子中的异常原因:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NnJKpInL-1659154207080)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220730113024396.png)]

    捕获具体异常

    确定是哪种异常的情况下使用的捕获方法

    如果我们确定异常是哪种类型,就要使用具体异常的方法去捕获,这样比使用通用异常要更加节省性能(因为通用异常需要从浩瀚的异常库里查找这次出现的异常是什么类型。)

    try:
        <代码块>
    except <具体的异常类型> as e:
        <异常处理代码块>
    
    • 1
    • 2
    • 3
    • 4

    例子:

    我们已知0被做为除数的异常类型是ZeroDivisionError,用这个异常类型去捕获0被做为除数出现的异常:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JbCxaIpi-1659154207082)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220730113630984.png)]

    捕获多个异常

    程序处理过程中,很可能会出现多个异常,而且异常的类型不相同。

    当然使用通用异常类型是可以捕获的,但我们知道使用具体异常可以节省性能,那么怎么做呢?

    第一种方法:

    try:
        <代码块>
    except <异常类型1> as e:
        print(e)
    except <异常类型2> as e:
        print(e)
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    注意:当except代码块有多个的时候,当捕获到一个异常后,不会再继续往下捕获

    第二种方法:推荐使用这种

    try:
        <代码块>
    except (<异常类型1>, <异常类型2>) as e:  # 用元组的形式将多个异常类型包裹起来
        print(e)
    
    • 1
    • 2
    • 3
    • 4

    例子:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6xMzFgVA-1659154207083)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220730114837544.png)]

    常见的异常类型

    异常名称描述
    Exception通用异常类型(基类)
    ZeroDivisionError不能整除0
    AttributeError对象没有这个属性
    IOError输入输出操作失败
    IndexError没有当前的索引
    KeyError没有这个键
    NameError没有这个变量(未初始化对象)
    SyntaxErrorpython语法错误
    SystemError解释器的系统错误
    ValueError传入的参数错误

    下面举几个例子:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qhKZMDzQ-1659154207083)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220730120944320.png)]

  • 相关阅读:
    Java线程池中的基础问题
    [0xGameCTF 2023] web题解
    springAOP面试题
    前端零代码开发实践:页面嵌套+逻辑连线0开发扩展组件,实现切换开关控制扇叶转动。能无代码封装扩展组件,有别于常规的web组态或低代码平台
    BAT面经总结,阿里巴巴、百度、京东、饿了么offer拿到手软!
    [Linux] 常用命令--版本信息/关机重启/目录/文件操作
    Mysql 主从复制与读写分离
    Unity 公用函数整理【一】
    WPF Treeview控件开虚拟化后定位节点
    手机word怎么转pdf?这几种方法很简单
  • 原文地址:https://blog.csdn.net/weixin_44629511/article/details/126070406