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

 

posted @   家乐福的搬砖日常  阅读(123)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示