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 @ 2022-11-16 15:46  家乐福的搬砖日常  阅读(64)  评论(0编辑  收藏  举报