自定义错误类型和处理

#导入系统模式

import sys

#定义获取信息的函数()文件名,所在函数名,当前行数

def get_head_info():

  try:

    raise Exception

  except:

    f = sys.exc_info()[2].tb_frame.f_back

  return (f.f_code.co_filename,f.f_code.co_name,str(f.f_lineno))

 

#不能为负数的异常类型

class FuShuError(RuntimeError):#自定义异常类需要继承运行时异常类 可以直接或者间接继承                                                           Exception类即可

  #添加初始化魔术方法

  def __init__(self,errormsg = '',errorno='',errorline='',errorfile=''):

  #将错误信息存入对象

  self.msg =errormsg#错误信息

  self.no =errorno #错误编号

  self.line = errorline#错误行数

  self.file = errorfilr#错误文件

 

try:

  #设置年龄

  age = -11

  #检测年龄是否合格

  if  age < 0 

     raise FuShuError('值为负数!‘,220,get_head_info()[2],__file__)

 

#接受非负数的异常

except FuShuError as e:

  print('年龄为负数属于非法数值‘’)

  age =age * -1

except NameError:

  print(‘变量书写异常‘)

print(age)’

posted @ 2017-11-20 20:01  19950216  阅读(508)  评论(0编辑  收藏  举报