优雅详细的Python异常。

errr的Python项目详细描述


在Python中优雅地创建详细的异常。在

详细的例外情况

>>>importerrr>>>classMyException(errr.DetailedException,list_detailts=True,details=["cause","type"]):...pass...>>>example=MyException("The backend server crashed","backend","crash")>>>raiseexample__main__.MyException:ThebackendservercrashedDetails:˪cause:backend˪type:crash>>>example.details{'cause':'backend','type':'crash'}>>>example.cause'backend'

语义异常

您还可以使用make_tree快速创建大型异常语义树 函数,使用errr.exception工厂将异常作为关键字参数列出 方法。make_tree方法执行这些递归工厂来生成 例外情况。嵌套这些工厂方法将使结果异常继承自 彼此。所有产生的异常都会被平直地注入到给定的模块中 dictionary(通常)这应该是globals(),但是您可以注入到其他模块中 使用sys.modules["name"].__dict__。在

^{pr2}$

异常包装

您可以使用wrap函数将异常作为一种新类型的异常进行捕获和重新生成:

importerrrclassLibraryError(errr.DetailedException,details=["library"]):passforname,libraryinlibraries.items():try:library.load()exceptExceptionase:errr.wrap(LibraryError,name,prepend="When trying to load %library% it reported:\n")# Traceback#   ...# __main__.LibraryError: When trying to load myLibrary it reported:# Module 'missing' not found.

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

推荐PyPI第三方库


热门话题
java Sonarqube测试覆盖率过滤器(jacoco)   java演示文稿将被取消,因为自创建以来显示度量已更改   java为什么Omnifaces Websocket<o:socket>不能与Websphere 9一起使用?   我试图读取java中的xml,但在我的系统中出现了一个错误   java异步支持未启用,即使默认情况下应该启用   java getThreadHandler方法无法从HandlerThread实例访问   带成员函数的多线程Java启动线程   java jar非法参数   java以编程方式注册@Component注释类   正则表达式如何在java中查找字符串中的长双精度数   具有多客户端的java ServerSocket   java JNI不适用于AppKit线程   java如何在用户选择目录元哈希值时输出该值?   java在春季上传阿拉伯文文件时,文件名以XML实体而不是阿拉伯文符号结束   java为什么我们需要在eclipse中作为远程服务器进行调试?   面向java的数据库计算PageRank   java在单击时切换到不同的活动