自定义异常

1.自定义异常

import os

class ExistsError(Exception):   # 自定义异常,将要定义的异常继承Exception,就可以在捕捉异常那里捕捉到
    pass

class KeyInvalidError(Exception):
    pass


def new_func(path,prev):
    """
    去path路径的文件中,找到前缀为prev的一行数据,获取数据并返回给调用者
        1000,成功
        1001,文件不存在
        1002,关键字为空
        1003,位置错误
    :param path:
    :param prev:
    :return:
    """
    response = {'code':1000,'date':None}
    try:
        if not os.path.exists(path):
            raise ExistsError()
        if not prev:
            raise KeyInvalidError()
    except ExistsError as e:
        response['code']=1001
        response['date']= "文件不存在"
    except KeyInvalidError as e:
        response['code'] = 1002
        response['date'] = "关键字为空"
    except Exception as e:
        response['code'] = 1003
        response['date'] = "未知错误"
    return response

2.如果自定义异常类中需要传值,抛出的时候就需要传值

class MyExceptError(Exception):
    def __init__(self,key,value):
        self.key = key
        self.value = value

try:
    raise MyExceptError('1001',"关键字为空")
except MyExceptError as e:
    print(e)

 

posted @ 2019-08-23 21:11  tiwe  阅读(178)  评论(0编辑  收藏  举报