Python里的异常处理(下)

在出现异常时正确地管理各种系统资源(如文件,锁和链接)通常是一个棘手的问题。
例如,引发的异常可能导致控制流跳过释放关键资源(如锁)的语句。

with 语句支持在由上下文管理器对象控制的运行时上下文中执行一系列语句

例如:

with open("debuglog","a") as f:
    f.write("Debugging \n")
     statements
    f.write("Done \n")

# 当控制流离开with语句后面的代码块时,with语句将自动关闭已打开的文件。

import threading
lock = threading.Lock()

with lock:
    # 关键部分
    statements
    # 关键部分结束

#当控制流进入with语句后面的代码块时自动请求一个锁,而在控制流离开时有自动释放这个锁
断言 assert语句

assert语句可以在程序中引入调试代码。

assert的一般格式为:assert test [, msg]

其中test是一个表达式,其值应该为True或False。如果test求值为False,assert就会引发AssertionError异常并使用在assert中提供的可选信息msg,例如:

def write_data(file,data):

    assert file, "write_data : file not defind !"

    ···
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,915评论 18 139
  • 一、简介 Python最强大的结构之一就是它的异常处理能力,所有的标准异常都使用类来实现,都是基类Exceptio...
    随风化作雨阅读 3,085评论 0 1
  • 把当前目录作为Root Document只需要这条命令即可:php -S localhost:3300 也可以指定...
    绚烂的时光阅读 745评论 0 1
  • 原文:https://my.oschina.net/liuyuantao/blog/751438 查询集API 参...
    阳光小镇少爷阅读 3,852评论 0 8
  • 希望大家喜欢,点赞哦 Python错误和异常处理概略 一、错误和异常的概念 1.1 错误:代码运行前的语法或者逻辑...
    Gaolex阅读 2,116评论 0 4