| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> python基础第九节 -> 正文阅读 |
|
[Python知识库]python基础第九节 |
异常逻辑代码和处理异常代码不放在一起 try: except: 异常机制本质 异常处理成语在出现问题时依然可以正确的执行剩余的程序。不会因为异常终止程序 处理异常的类 异常类 异常类定义中包含了该类异常的信息和对异常进行处理的方法 异常也采用对象的方式来处理: (1)抛出异常。,生成异常对象,停止当前执行路径,异常对象给解释器。 (2)捕获异常,解释器得到该异常后,寻找相应代码来处理异常 try except 基本结构 try: ? ? ? ? 被监控的可能引发异常的语句块 except BaseException[as e]:? ?#BaseException[所有异常的根类,吧异常对象赋给e变量 ? ? ? ? 异常处理语句块 try块包含着可能引发异常的代码,except块用来捕捉和处理发生的异常 try多个except结构 try: ? ? ? ? 被监控的语句块 except? Exception1: ? ? ? ? xxx except Exception 2: ? ? ? ? xxx 按照先子类后父类的顺序捕获异常 try except else?? 如有有异常执行except 没有异常执行else try except finally 结构 finally 结构 无论是否发生异常都会执行,通常用来释放try块中申请的资源 ?return 结束方法运行、返回值? 一般不放到异常处理结构中,放到方法最后 常见异常的解决 (1)SytaxError 语法错误 (2)NameError 尝试访问一个没有声明的变量 (3)ZeroDivisionError 除数为0 错误 (4)? ValueError 数值错误 (5)TypeError 类型错误 (6)AttributeError 访问对象不存在的属性 (7)IndexError 索引越界异常 (8)KeyError 字典的关键字不存在 With 上下文管理 相对于finally块释放资源的代码,可以使用with上下文管理来释放资源。 with context_expr[as var]: ?????????语句块 with代码块执行完毕后自动还原进入改代码之前的现场或上下文 在文件操作 网络通信相关的场合非常有用,不论是否有异常总能保证资源正常释放,极大的简化了工作 with open() as f: ???????? traceback 模块 追溯? traceback_print_exc()? 放在except 后面?? 还可以帮助我们把异常信息输出到文件中 自定义异常类 自定义异常类一般都是运行时异常,通常继承Exception 根类是BaseException? 子类是Exception 用raise来主动抛出异常‘ if __name__ == "__main__"? #如果为True 则模块是作为独立文件运行,可以执行测试代码 自定义异常类中定义__str__(self): Pycharm 开发环境调试模式 调试器设置断点,debug? ?step into step over |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 12:45:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |