在使用Python的时候,有时候想自己自定义异常错误,同时抛出多个参数,比如对数据库查找一个用户,如果没有找到,返回
{"errCode":"-1", "errMsg":"没有该用户!"}的Json信息,那么异常需要抛出errCode和errMsg。下面的代码解决了该问题,也就是自定义异常抛出和接收多个值的技巧:
# 自定义异常错误
class MyError(ValueError):
ERROR=("-1", "没有该用户!")
# 抛出异常测试函数
def raiseTest():
# 抛出异常
raise MyError(MyError.ERROR[0], # 异常错误参数1
MyError.ERROR[1]) # 异常错误参数2
# 主函数
if __name__ == '__main__':
try:
raiseTest()
except MyError as msg:
print("errCode:", msg.args[0]) # 获取异常错误参数1
print("errMsg:", msg.args[1]) # 获取异常错误参数2
errCode: -1
errMsg: 没有该用户!
Process finished with exit code 0
由于自定义异常错误是一个类,继承了ValueError,在PyCharm环境下Ctrl+鼠标左键跳转到ValueError查看,ValueError代码如下:
class ValueError(Exception):
""" Inappropriate argument value (of correct type). """
def __init__(self, *args, **kwargs): # real signature unknown
pass
@staticmethod # known case of __new__
def __new__(*args, **kwargs): # real signature unknown
""" Create and return a new object. See help(type) for accurate signature. """
pass