#!/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)

Python 自定义异常处理Error函数的更多相关文章

  1. 17.python自定义函数

    什么是函数,函数说白了就是将一系列代码封装起来,实现代码的重用. 什么是代码重用? 假设我有这样的需求: 但是我还是觉得太麻烦了,每次想吃饭的时候都要重复这样的步骤.此时,我希望有这样的机器:

  2. python自定义pi函数的代码

    下边内容是关于python自定义pi函数的内容. def pi(): # Compute digits of Pi. # Algorithm due to LGLT Meertens. k, a, b ...

  3. Python基础之用PyQt5界面代码分离以及自定义一个槽函数

    最近开发一个项目,需要用到界面,遇到界面不能实时更新的问题,看到网上很多用槽函数,但是大多都是些button的,并不是我需要的,要么就是整数的,后来自己进行尝试,写了一个自定义的槽函数处理treewi ...

  4. Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数

    Python第七天   函数  函数参数   函数里的变量   函数返回值  多类型传值     函数递归调用   匿名函数   内置函数 目录 Pycharm使用技巧(转载) Python第一天   ...

  5. Python入门基础之函数、切片

    Python之函数 Python不但能非常灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用. Python之调用函数 Python内置了很多有用的函数,我们可以直接调用. 要调用一个函数,需 ...

  6. ASP.NET AJAX入门系列(8):自定义异常处理

    在UpdatePanel控件异步更新时,如果有错误发生,默认情况下会弹出一个Alert对话框显示出错误信息,这对用户来说是不友好的,本文看一下如何在服务端和客户端脚本中自定义异常处理,翻译自官方文档. ...

  7. WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)

    WebAPI调用笔记   前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...

  8. Python:Base3(函数,切片,迭代,列表生成式)

    1.Python之调用函数: Python内置了很多有用的函数,我们可以直接调用. 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数 abs,它接收一个参数. 可以直接从Python的官方 ...

  9. python基础知识6——函数

    函数:自定义函数:函数的参数:不带参数,普通参数,默认参数,动态参数:返回值return:函数作用域:内置函数高阶函数:map,reduce,filter,sorted:lambda表达式:文件操作: ...

随机推荐

  1. 从头认识多线程-1.8 迫使线程停止的方法-暴力Stop方法

    这一章节我们来讨论一下暴力Stop方法. 1.使用样例 package com.ray.deepintothread.ch01.topic_8; public class StopByStopMeth ...

  2. django rest_framework入门三-Requests和Responses

    这一节,我们介绍rest_framework的Requests和Responses对象,来替代django.http的HttpRequest和HttpResponse对象 1.Requests和Res ...

  3. crontab入门

    参数 crontab是一个处理定时任务的命令,在终端输入man crontab可以得到使用方法提示,主要参数如下: crontab -u # 指定运行的账户,默认为当前账户 crontab -l # ...

  4. 11g等待事件之library cache: mutex X

    11g等待事件之library cache: mutex X 作者: dbafree 日期: 2012 年 07 月 01 日发表评论 (0)查看评论   library cache: mutex X ...

  5. Lintcode: Kth Largest Element 解题报告

    Kth Largest Element Find K-th largest element in an array. Note You can swap elements in the array E ...

  6. hdu1599(无向图的最小环模板)

    题意:杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,....VK,V1,那么必须满足K>2,就是说至 ...

  7. 1. EM算法-数学基础

    1. EM算法-数学基础 2. EM算法-原理详解 3. EM算法-高斯混合模型GMM 4. EM算法-高斯混合模型GMM详细代码实现 5. EM算法-高斯混合模型GMM+Lasso 1. 凸函数 通 ...

  8. 2. 知识图谱-命名实体识别(NER)详解

    1. 通俗易懂解释知识图谱(Knowledge Graph) 2. 知识图谱-命名实体识别(NER)详解 3. 哈工大LTP解析 1. 前言 在解了知识图谱的全貌之后,我们现在慢慢的开始深入的学习知识 ...

  9. 2. DNN神经网络的反向更新(BP)

    1. DNN神经网络的前向传播(FeedForward) 2. DNN神经网络的反向更新(BP) 3. DNN神经网络的正则化 1. 前言 DNN前向传播介绍了DNN的网络是如何的从前向后的把数据传递 ...

  10. Python os.popen() 方法

    简述 就是新建一个管道执行一个命令. 方法是os.popen(命令,权限,缓冲大小) 比如 a = 'mkdir def' b = os.popen(a,) print b 就是等同于使用命令去创建了 ...