python-错误和异常-捕获异常
1.try
python中,捕获异常使用try ... except ...这种语法来捕捉异常,下面是一个异常捕获的示例
#coding=utf-8 def test(a, b): try: print(a/b) except ZeroDivisionError: print("0不能作分母") if __name__ == '__main__': test(10, 5) test(10, 0)
运行结果:
2
0不能作分母
那些你担心不安全的代码,就可以放在try子句中,也就是try和except之间。
2.except
2.1 捕获异常时不提示
def test(a, b): try: print(a/b) except (ZeroDivisionError, ValueError): return None if __name__ == '__main__': test(10, 5) test(10, 0)
运行结果:2
2.2 逐个捕获异常
def test(a,b): try: print (a/b); except ZeroDivisionError: print('0不能做分母') except ValueError: print("类型错误") else: print('什么异常都没发生') if __name__ =='__main__': test(10,5) test(10,0)
运行结果:
2
什么异常都没发生
0不能做分母
3.finally
你可以在finally语句块里做清理操作,因为不论try子句里是否发生异常,也不论你在except语句块里做了什么操作,总之,最终一定会执行finally语句块里的代码,这就保证了这里的代码最后一定会被执行,所以,清理收尾的工作一定会进行。
你可以在这里输出日志,你可以做任何你想做的事情。
def divide(x, y): try: result = x / y except ZeroDivisionError: print("division by zero!") else: print("result is", result) finally: print("executing finally clause") if __name__ == '__main__': divide(10, 5) divide(10, 0)
运行结果:
('result is', 2) executing finally clause division by zero! executing finally clause
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现