• python 异常处理


    处理流程

    try:
        1/0
    except (ZeroDivisionError,NameError) as e:
        print("这里给出可能的出错信息",e)
    else:
        print("如果try成功,执持这里")
    finally:
        print("最后执行的内容,不管是否出现异常,都会执行的语句")
    
    try:
        1/2
    except (ZeroDivisionError,NameError) as e:
        print("xxx",e)
    else:
        print("如果try成功,执持这里")
    finally:
        print("最后执行的内容,不管是否出现异常,都会执行的语句")
    
    try:
        1/0
    except Exception as e:
        print("这果给出详细的出错信息",e)
    else:
        print("如果try成功,执持这里")
    finally:
        print("最后执行的内容,不管是否出现异常,都会执行的语句")

    这里给出可能的出错信息 division by zero
    最后执行的内容,不管是否出现异常,都会执行的语句
    如果try成功,执持这里
    最后执行的内容,不管是否出现异常,都会执行的语句
    这果给出详细的出错信息 division by zero
    最后执行的内容,不管是否出现异常,都会执行的语句

    import traceback
    class Test:
         def __enter__(self):
             print("enter")
             return self
         def __exit__(self, exc_type, exc_val, exc_tb):
             print(self,exc_type, exc_val, exc_tb)
             print(traceback.extract_tb(exc_tb))
             print("exit")
             return  True
    
    with Test() as x:
        1/0

    enter
    <__main__.Test object at 0x000001A532943CC8> <class 'ZeroDivisionError'> division by zero <traceback object at 0x000001A532943E08>
    [<FrameSummary file D:/Users/Error/Error2.py, line 13 in <module>>]
    exit

    import contextlib
    
    @contextlib.contextmanager
    def test2():
        try:
            yield
        except ZeroDivisionError as e:
            print("这里是错误信息",e)
    
    with test2() as w:
        1/0

    这里是错误信息 division by zero

    每天进步一点点,多思考,多总结 版权声明:本文为CNblog博主「zaituzhong」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
  • 相关阅读:
    QString和char字符串数组之间的转换 (转)
    RadioGroup 的 RadioButton 选择改变字体颜色和背景颜色
    Android学习笔记:TabHost 和 FragmentTabHost
    关于JDNI、JMX
    Oracle中查看所有的表,用户表,列名,主键,外键
    如何对行 表 数据库加锁
    android网络优化
    深入java虚拟机
    马拉拉:被塔利班追杀的女孩
    Oracle---->基本DDL
  • 原文地址:https://www.cnblogs.com/tingxin/p/12163801.html
Copyright © 2020-2023  润新知