[异常处理]:自定义异常类型
python 中的 自定义异常类型。
# 自定义一个异常类,它继承了python内置的Exception基类
class MyERR(Exception):
def __init__(self, msg, code, email):
self.msg = msg
self.code = code
self.email = email
def __str__(self):
return self.msg
def handle_err(self):
"""发邮件给运维人员"""
print("错误代码 {}, 快去找运维来解决!".format(self.code))
print("sending email to {} ...".format(self.email))
return None
# 定义一个业务函数,用于向数据库保存订单信息
def save_order(name,num):
if num < 0:
raise MyERR("【error】:\n订单量不可能为负数!","CODE 998","123456789@qq.com") # 触发MyERR异常
else:
print("商品:{}, 售出:{} 件\nsaving order information to db...".format(name,num))
return None
# 执行代码
print("【订单管理系统】".center(40,"+"))
# 尝试保存第1组正常数据
try:
save_order("苹果",10)
except MyERR as e: # e是一个对象
print(e) # 调用e的 str 方法,打印错误信息
e.handle_err() # 给运维人员发邮件,报告错误
else:
print("成功保存1组数据...")
# 尝试保存第2组异常数据
print()
try:
save_order("特斯拉",-10)
except MyERR as e:
print(e)
e.handle_err()
else:
print("成功保存1组数据...")
# 退出系统
print()
print("【系统正常退出】".center(40,"+"))
# [运行结果如下]:########################
"""
++++++++++++++++【订单管理系统】++++++++++++++++
商品:苹果, 售出:10 件
saving order information to db...
成功保存1组数据...
【error】:
订单量不可能为负数!
错误代码 CODE 998, 快去找运维来解决!
sending email to 123456789@qq.com ...
++++++++++++++++【系统正常退出】++++++++++++++++
"""
# #######################################
--- to be continue ---
本文来自博客园,作者:渝北小站,转载请注明原文链接:https://www.cnblogs.com/timgunt/p/15725363.html