主动抛出异常raise
# ### 主动抛异常 """ BaseException 所有异常类的父类 Exception 普通异常类的父类 raise + 异常错误类 / 异常错误类对象 """ # (1) raise 基本语法 # raise KeyError # raise KeyError() """ try: raise except: pass try: raise except BaseException: pass """ # (2) 自定义异常错误类 """必须继承异常类的父类 BaseException """ # return_errorinfo必须在报错的情况下才能出发内部相应方法获取当前行号和文件名 def return_errorinfo(n): import sys f = sys.exc_info()[2].tb_frame.f_back if n == 1: return str(f.f_lineno) #返回当前行数 elif n == 2: return f.f_code.co_filename #返回文件名 # 通过主动抛出异常,来获取响应的数据 def get_info(n): try: raise except: return return_errorinfo(n) # 自定义异常错误类 class MyException(BaseException): def __init__(self,error_num,error_msg,error_filename,error_linenum): self.error_num = error_num self.error_msg = error_msg self.error_filename = error_filename self.error_linenum = error_linenum eye = "轮回眼" try: if eye == "轮回眼": raise MyException( 404,"人类没有轮回眼",get_info(2) , get_info(1) ) except MyException as e: #给自定义MyException异常类的对象起个别名叫做e print(e.error_num) print(e.error_msg) print(e.error_filename) print(e.error_linenum)