| 当检测到一个错误时,Python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的“异常”, 也就是我们常说的BUG |
| |
| try: |
| 可能发生错误的代码 |
| except: |
| 如果出现异常执行的代码 |
| try: |
| print(name) |
| except NameError as e: |
| print('name变量名称未定义错误') |
| |
| ① 如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常。 |
| ② 一般try下方只放一行尝试执行的代码。 |
| try: |
| print(1/0) |
| except (NameError, ZeroDivisionError): |
| print('ZeroDivision错误...') |
| |
| |
| try: |
| print(num) |
| except (NameError, ZeroDivisionError) as e: |
| print(e) |
| try: |
| print(name) |
| except Exception as e: |
| print(e) |
| try: |
| print(1) |
| except Exception as e: |
| print(e) |
| else: |
| print('我是else,是没有异常的时候执行的代码') |
| try: |
| f = open('test.txt', 'r') |
| except Exception as e: |
| f = open('test.txt', 'w') |
| else: |
| print('没有异常,真开心') |
| finally: |
| f.close() |
| 当函数func01中发生异常, 并且没有捕获处理这个异常的时候, 异常会传递到函数func02, 当func02也没有捕获处理这个异常的时候 |
| main函数会捕获这个异常, 这就是异常的传递性 |
| |
| 当所有函数都没有捕获异常的时候, 程序就会报错 |
| |
| 利用异常具有传递性的特点, 当我们想要保证程序不会因为异常崩溃的时候, 就可以在main函数中设置异常捕获, 由于无论在整个程序哪里发生异常, |
| 最终都会传递到main函数中, 这样就可以确保所有的异常都会被捕获 |

| |
| def func1(): |
| print("func1 开始执行") |
| num = 1 / 0 |
| print("func1 结束执行") |
| |
| |
| def func2(): |
| print("func2 开始执行") |
| func1() |
| print("func2 结束执行") |
| |
| |
| def main(): |
| try: |
| func2() |
| except Exception as e: |
| print(f"出现异常了,异常的信息是:{e}") |
| |
| main() |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术