码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Python学习记录 异常处理


    2022.08.23 DAY39

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

    • 解决方案

      • 加条件 if-else 增加相关的容错处理

      • 异常处理方案

          try:
              可能出现问题的代码。
          except:
              如果出现问题,会执行改代码块。
        
        • 1
        • 2
        • 3
        • 4
    • 多个异常处理

        try:
            ---
        excepr 异常1:
            ---
        excepr 异常2:
            ---
        excepr 异常3:
            ---
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8

    代码示例:

    a = input("请输入被除数:")
    b = input("请输入除数:")
    
    try:
        a = int(a)
        b = int(b)
        c = a / b
        print('商为:%g'%c)
    except ValueError:
        print('数据类型有误')
    except ZeroDivisionError:
        print('除数不能为0')
    except Exception:
        print('其他异常')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    运行结果:

    请输入被除数:6
    请输入除数:0
    除数不能为0
    
    • 1
    • 2
    • 3
    try-except-else-finally
    try:
        ---
    except 异常 as 变量:
        ---
    else:
        没有异常执行的代码
    finally:
        最终一定要执行的代码
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    测试代码:

    def test2():
        try:
            # 打开文件
            file = open('TestFile.txt', 'w', encoding='utf-8')
            print('文件打开成功')
            # 文件写入 write只能将字符串数据写入到文件
            file.write('Hello World...')
            # file.write([1, 2, 3])  # 报错
        except Exception as e:
            print(e.args)
        else:
            print('文件写入完毕')
        finally:
            # 文件关闭
            file.close()
            print('关闭文件,谢谢试用')
    
    test2()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    异常处理抛出自定义异常

    测试代码:

    # 抛出异常 raise 异常对象
    # 定义一个异常类
    class GenderException(Exception):
        def __init__(self):
            super().__init__()
            self.errMsg = '性别只能设置成男或者女'
    
    class Student():
        def __init__(self, name, gender):
            self.name = name
            self.setGender(gender)
    
        #设置性别
        def setGender(self, gender):
            if gender == '男' or gender == '女':
                self.__gender = gender
            else:
                # 抛出异常 性别异常
                raise GenderException()
    
        def getGender(self):
            return self.__gender
        def showInfo(self):
            print("我叫:%s, 性别:%s"%(self.name, self.__gender))
    
    
    if __name__ == '__main__':
        stu = Student('学生1', '男')
        try:
            stu.setGender('不男不女')
        except Exception as e:
            print(type(e))
            print(e.args)
            print(e.errMsg)
        stu.showInfo()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
  • 相关阅读:
    SCT71403F50,SCT71403F33,TPS7B82,TPS7B81
    网站登录界面制作(three.js 3D特效背景)+ boostrap导航栏实现 + jQuery移动窗口【附加源代码】
    计算机网络期末复习-Part1
    【JavaEE基础与高级 第53章】Java中的IO流中的缓冲流详细介绍使用、字节缓冲流、字符缓冲流、案例使用与总结
    特征缩放是强制性的吗? 什么时候使用标准化? 什么时候使用归一化?数据的分布会发生什么变化?对异常值有什么影响?模型的准确性会提高吗?
    第13集丨忠于内心是强大内心的第一步
    Git和Github的基本用法
    Vue高级--前后端分离
    DLR 的扩展库 Dynamitey
    如何学好次世代3D建模,学些什么,达到什么标准才能入行?
  • 原文地址:https://blog.csdn.net/Code_peasant/article/details/126504895
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号