Python 自定义异常处理Error函数
#!/usr/bin/env python # -*- coding:utf-8 -*- CODEMSG = { 2000: u"True", 4000: u"客户上传的文件格式不正确", 4010: u"客户上传的文件格式是要求格式以外的文件", 4001: u"客户上传的文件列超过1024", 4002: u"客户端未传值或值传递错误!", 4003: u"文件数据格式不对", 4004: u"已经存在", 4005: u"用户未认证或认证不成功", 4006: u"无法进行数据分析", 4007: u"用户分析条件不正确", 4008: u"用户无权限", 4999: u"Unknown Error!!!", 5000: u"服务器错误", 5001: u"数据表已经存在", 5002: u"sql语句错误", 5003: u"索引文件未创建" } class MyCustomError(Exception): """ Error class for the IBM SPSS Statistics Input Output Module Use Method: def example(): try: raise ValueError # [''] raise SPSSError(retcode="6001") or raise SPSSError(retcode=6001) or raise SPSSError except Exception as e: e = FormatErrorCode(e) print(e) # ['4999', 'Unknown Error!!!'] example() #>>> (5001, '数据表已经存在') """ def __init__(self, msg=None, retcode=4999): self.retcode = int(retcode) try: if not msg: msg = CODEMSG[int(self.retcode)] except: msg = "Unknown Error!!!" Exception.__init__(self, self.retcode, msg) def FormatErrorCode(arg): data = str(arg).replace("(", "").replace(")", "").replace("'", '').split(",") if all(data): Error_Infor = [i.strip() for i in data if i] if len(Error_Infor) == 2: return [i.strip() for i in data if i] else: try: raise MyCustomError(msg=Error_Infor[0]) except Exception as e: return FormatErrorCode(e) else: try: raise MyCustomError() except Exception as e: return FormatErrorCode(e) class SPSSError(MyCustomError): def __init__(self, retcode=None): super(SPSSError, self).__init__(retcode=retcode) class GetParametersError(MyCustomError): def __init__(self, retcode=4002): super(GetParametersError, self).__init__(retcode=retcode) if __name__ == '__main__': from common.base import MyPymysql try: ret = MyPymysql('asdf') res = ret.selectall_sql('') ret.close() # raise ValueError # [''] -> ['4999', 'No section: asdf'] raise GetParametersError() or raise GetParametersError(40088) or raise GetParameterError except Exception as e: print("Error is :", e) e = FormatErrorCode(e) print(e)
作者:沐禹辰
出处:http://www.cnblogs.com/renfanzi/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
出处:http://www.cnblogs.com/renfanzi/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。