期望代码引发异常的上下文管理器

expect-exception的Python项目详细描述


预期异常

一个装饰器和上下文管理器来运行您期望的(和想要的)代码提高 一个例外。在

此模块旨在“反转”您编写时try/except的用法 异常为“良好”分支的代码。它引发了一个 ExceptionNotRaisedError中未引发预期的异常类型 包装好的代码,要么因为它完成了执行,要么因为另一个, 引发了意外异常。在

例如,可以使用expect_exception替换以下代码:

defupload_new_file(filename,content)try:some_api.fetch_file(filename)exceptFileNotFoundError:# We don't want to override existing files on SomeService, but SomeApi# doesn't have a method to check if a file exists!passsome_api.upload_file(filename,content)

有了这个:

^{pr2}$

或者,您可以使用expect_exception作为助手的装饰器 方法:

# some_api.pyclassSomeApi(...):...deffetch_file(self,filename):...@expect_exception(FileNotFoundError):defensure_file_missing(self,filename):self.fetch_file(filename)# ---defupload_new_file(filename,content):some_api.ensure_file_missing(filename)some_api.upload_file(filename,content)

使用

fromexpect_exceptionimportexpect_exception# Use either as a @decorator or as a `with` statement context.expect_exception(SomeExceptionType[,SomeExceptionType,...,wrap_unexpected_exception:bool])

参数:

  • *exception_types: Type[BaseException](位置参数):一个或多个 此中预期引发的异常类型(类对象) 上下文。 从这里列出的任何一个继承的异常也将被捕获。在
  • wrap_unexpected_exception: bool(仅限关键字参数):如果为True,则包装任何 ExceptionNotRaisedError中出现意外异常;如果为False,则 意外异常。 默认为True。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在验证检查中改进构建器模式?   java如何定义一个依赖项来获取快照?   java Javafx webview在运行时不显示dashplotly应用程序   java Android kotlin单元测试用例。。?   java Android:SurfaceView,为什么要使用不同的线程   Android/Java“org.apache.http.ProtocolException”,http头应答有问题   反射如何确定类成员是否是静态的以及Java中的字段   java设置EditText以接受双值的问题   类加载器如何使用类加载器将jar从我的网站加载到java应用程序的脚本中   java GWT HTMLTable colaspan功能   java无法删除/重命名文件   java Navigableset vs Navigablemap   php中java加密方法的转换   java为什么加载我的共享对象文件会在Netbeans 8.2中出现“未满足链接”错误?   java JAXRS CXF异常包装   java程序在If语句之后执行Else语句   java将对象转换为JAXBElement<Object>