Contents
8.6. 小试牛刀¶
代码示例:
#!/usr/bin/env python
# -*- coding:utf8 -*-
# auther; 18793
# Date:2019/9/8 21:17
# filename: 08.小试牛刀.py
num_list = [5, 0, 73, 0, 16]
class ExceptionNum(object):
def __init__(self):
pass
@staticmethod
def num_operation():
# 正常数数组
normal_num_list = list()
# 异常数数组
exp_num_list = list()
for item in range(len(num_list)):
if item == len(num_list) - 1:
divisor_num, dividend_num = num_list[item], num_list[item]
else:
# divisor_num除数,dividend_num 被除数
divisor_num, dividend_num = num_list[item + 1], num_list[item]
try:
divisor_num / dividend_num
rt_str = "第" + str(item + 1) + "个是正常数,值:" + str(num_list[item])
normal_num_list.append(rt_str)
except ZeroDivisionError as ex:
exp_num = SelfDefineError(num_list[item].__int__())
rt_str = "第" + str(item + 1) + "个是异常数,值:" + str(exp_num)
exp_num_list.append(rt_str)
print(SelfDefineError(num_list[item]).__str__())
return normal_num_list, exp_num_list
class SelfDefineError(Exception):
def __init__(self, num):
self.num = num
def __str__(self):
return "error info:The dividend num equals zero."
def __int__(self):
return self.num
if __name__ == '__main__':
normal_num_list, exp_num_list = ExceptionNum().num_operation()
print("正常数数组:{}".format(normal_num_list))
print("异常数数组:{}".format(exp_num_list))
"""
error info:The dividend num equals zero.
error info:The dividend num equals zero.
正常数数组:['第1个是正常数,值:5', '第3个是正常数,值:73', '第5个是正常数,值:16']
异常数数组:['第2个是异常数,值:error info:The dividend num equals zero.', '第4个是异常数,值:error info:The dividend num equals zero.']
"""