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)

 


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

再如:

posted on 2014-01-12 02:05  xxxteam  阅读(836)  评论(0编辑  收藏  举报

导航