zoukankan      html  css  js  c++  java
  • Python 2.7 Exception格式化工具

    首先说一个发现:

    1 try:
    2     抛错误,抛异常
    3 except Exception as e:
    4     都被这里抓住了
    5 except Error as e:
    6     这里啥事都没了


    然后,说说Exception as e的e。e可谓是格式五花八门。

    比如:

    再比如:

    这么不严谨的格式,实在没办法直接从e.Name或e.Message等之类的主流方式来一步到位地抓出ErrorTitle与ErrorDetail。那怎么办呢?进行了各种尝试后,发现个好方法:

    str(type(e)) 可以抓出Title,而且还包含Type。而str(e)则可以抓出Detail。

    因此,诞生了格式化工具:

    ExceptionX_Result.py:

    1 class ExceptionX_Result:
    2     exceptionType = None
    3     exceptionTitle = None
    4     exceptionDetail = None;

    ExceptionX.py:

     1 from ExceptionX_Result import ExceptionX_Result
     2 
     3 class ExceptionX:
     4 
     5     @staticmethod
     6     def ToString(arg_exception) : 
     7         result = ExceptionX_Result
     8         tempStr = str(type(arg_exception))
     9         tempStrArray = tempStr.split("'")
    10         result.exceptionTitle = tempStrArray[1]
    11         result.exceptionType = tempStrArray[0][1:]
    12         result.exceptionDetail = str(arg_exception)
    13         if result.exceptionDetail[0] == "<":
    14             if result.exceptionDetail[result.exceptionDetail.__len__() - 1] == ">" :
    15                 result.exceptionDetail = result.exceptionDetail[1:result.exceptionDetail.__len__() - 1]
    16         return result;

    用法例子:

    1 try:
    2     value = 1 / 0
    3 except Exception as e:
    4     #在下面这行下一个断点,然后看看tempExceptionInfo的结构吧~
    5     tempExceptionInfo = ExceptionX.ToString(e)


    呵呵,终于统一了。最终效果:

    再如:

  • 相关阅读:
    日记2014/06/25
    Cocos2dx 3.1.1 学习笔记整理(4):事件监听与Action的初步使用
    Cocos2dx 3.1.1 学习笔记整理(3):逐帧动画
    Cocos2dx 3.1.1 学习笔记整理(2):创建场景与载入图片
    Cocos2dx 3.1.1 学习笔记整理(1) 新建项目
    5-20
    5-19
    5-18
    5-17
    5-16
  • 原文地址:https://www.cnblogs.com/xxxteam/p/3515590.html
Copyright © 2011-2022 走看看