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)
Python 自定义异常处理Error函数的更多相关文章
- 17.python自定义函数
什么是函数,函数说白了就是将一系列代码封装起来,实现代码的重用. 什么是代码重用? 假设我有这样的需求: 但是我还是觉得太麻烦了,每次想吃饭的时候都要重复这样的步骤.此时,我希望有这样的机器:
- python自定义pi函数的代码
下边内容是关于python自定义pi函数的内容. def pi(): # Compute digits of Pi. # Algorithm due to LGLT Meertens. k, a, b ...
- Python基础之用PyQt5界面代码分离以及自定义一个槽函数
最近开发一个项目,需要用到界面,遇到界面不能实时更新的问题,看到网上很多用槽函数,但是大多都是些button的,并不是我需要的,要么就是整数的,后来自己进行尝试,写了一个自定义的槽函数处理treewi ...
- Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数
Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数 目录 Pycharm使用技巧(转载) Python第一天 ...
- Python入门基础之函数、切片
Python之函数 Python不但能非常灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用. Python之调用函数 Python内置了很多有用的函数,我们可以直接调用. 要调用一个函数,需 ...
- ASP.NET AJAX入门系列(8):自定义异常处理
在UpdatePanel控件异步更新时,如果有错误发生,默认情况下会弹出一个Alert对话框显示出错误信息,这对用户来说是不友好的,本文看一下如何在服务端和客户端脚本中自定义异常处理,翻译自官方文档. ...
- WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)
WebAPI调用笔记 前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...
- Python:Base3(函数,切片,迭代,列表生成式)
1.Python之调用函数: Python内置了很多有用的函数,我们可以直接调用. 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数 abs,它接收一个参数. 可以直接从Python的官方 ...
- python基础知识6——函数
函数:自定义函数:函数的参数:不带参数,普通参数,默认参数,动态参数:返回值return:函数作用域:内置函数高阶函数:map,reduce,filter,sorted:lambda表达式:文件操作: ...
随机推荐
- 从头认识多线程-1.8 迫使线程停止的方法-暴力Stop方法
这一章节我们来讨论一下暴力Stop方法. 1.使用样例 package com.ray.deepintothread.ch01.topic_8; public class StopByStopMeth ...
- django rest_framework入门三-Requests和Responses
这一节,我们介绍rest_framework的Requests和Responses对象,来替代django.http的HttpRequest和HttpResponse对象 1.Requests和Res ...
- crontab入门
参数 crontab是一个处理定时任务的命令,在终端输入man crontab可以得到使用方法提示,主要参数如下: crontab -u # 指定运行的账户,默认为当前账户 crontab -l # ...
- 11g等待事件之library cache: mutex X
11g等待事件之library cache: mutex X 作者: dbafree 日期: 2012 年 07 月 01 日发表评论 (0)查看评论 library cache: mutex X ...
- Lintcode: Kth Largest Element 解题报告
Kth Largest Element Find K-th largest element in an array. Note You can swap elements in the array E ...
- hdu1599(无向图的最小环模板)
题意:杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,....VK,V1,那么必须满足K>2,就是说至 ...
- 1. EM算法-数学基础
1. EM算法-数学基础 2. EM算法-原理详解 3. EM算法-高斯混合模型GMM 4. EM算法-高斯混合模型GMM详细代码实现 5. EM算法-高斯混合模型GMM+Lasso 1. 凸函数 通 ...
- 2. 知识图谱-命名实体识别(NER)详解
1. 通俗易懂解释知识图谱(Knowledge Graph) 2. 知识图谱-命名实体识别(NER)详解 3. 哈工大LTP解析 1. 前言 在解了知识图谱的全貌之后,我们现在慢慢的开始深入的学习知识 ...
- 2. DNN神经网络的反向更新(BP)
1. DNN神经网络的前向传播(FeedForward) 2. DNN神经网络的反向更新(BP) 3. DNN神经网络的正则化 1. 前言 DNN前向传播介绍了DNN的网络是如何的从前向后的把数据传递 ...
- Python os.popen() 方法
简述 就是新建一个管道执行一个命令. 方法是os.popen(命令,权限,缓冲大小) 比如 a = 'mkdir def' b = os.popen(a,) print b 就是等同于使用命令去创建了 ...